Have a question?
Message sent Close
View Categories

SQL Dates

3 min read

SQL Dates – SQL Огноо #

The most difficult part when working with dates is to be sure that the format of the date you are trying to insert, matches the format of the date column in the database.

Огноотой ажиллахад хамгийн хэцүү хэсэг нь оруулах гэж буй огнооны формат өгөгдлийн сангийн огнооны баганын форматтай таарч буй эсэхийг шалгах явдал юм.

As long as your data contains only the date portion, your queries will work as expected. However, if a time portion is involved, it gets more complicated.

Хэрэв өгөгдөл зөвхөн огнооны хэсгийг агуулж байгаа бол таны хүсэлтүүд хүлээгдэж буй үр дүнг өгөх болно. Гэхдээ, цагийн хэсэг оролцвол, энэ нь илүү төвөгтэй болно.


SQL Date Data Types – SQL Огнооны Өгөгдлийн төрлүүд #

Үсгийн товчлол тайлбар:

  • YYYY болон YY – Жил 
  • MM – Сар
  • DD – Өдөр
  • HH – Цаг
  • MI – Минут
  • CC – Секунд

 

MySQL comes with the following data types for storing a date or a date/time value in the database:

MySQL өгөгдлийн санд огноо эсвэл огноо/цагийн утга хадгалахад дараах өгөгдлийн төрлүүдийг агуулдаг:

  • DATE – format YYYY-MM-DD

DATE – формат ЖЖЖЖ-СС-ӨӨ

  • DATETIME – format: YYYY-MM-DD HH:MI:SS

DATETIME – формат: ЖЖЖЖ-СС-ӨӨ ЦЦ:MI:CC

  • TIMESTAMP – format: YYYY-MM-DD HH:MI:SS

TIMESTAMP – формат: ЖЖЖЖ-СС-ӨӨ ЦЦ:MI:CC

  • YEAR – format YYYY or YY

YEAR – формат ЖЖЖЖ эсвэл ЖЖ

SQL Server comes with the following data types for storing a date or a date/time value in the database:

SQL Server өгөгдлийн санд огноо эсвэл огноо/цагийн утга хадгалахад дараах өгөгдлийн төрлүүдийг агуулдаг:

  • DATE – format YYYY-MM-DD

DATE – формат ЖЖЖЖ-СС-ӨӨ

  • DATETIME – format: YYYY-MM-DD HH:MI:SS

DATETIME – формат: ЖЖЖЖ-СС-ӨӨ ЦЦ:MI:CC

  • SMALLDATETIME – format: YYYY-MM-DD HH:MI:SS

SMALLDATETIME – формат: ЖЖЖЖ-СС-ӨӨ ЦЦ:MI:CC

  • TIMESTAMP – format: a unique number

TIMESTAMP – формат: дахин давтагдашгүй тоо

Note: The date types are chosen for a column when you create a new table in your database!

Тайлбар: Огнооны төрлийг шинэ хүснэгт үүсгэх үедээ сонгоно!


SQL Working with Dates – SQL Огноотой Ажиллах #

Look at the following table:

Доорх хүснэгтийг хараарай:

Orders Table – Захиалгууд Хүснэгт #

OrderId

ЗахиалгаID

ProductName

БүтээгдэхүүнНэр

OrderDate

ЗахиалгаОгноо

1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

Now we want to select the records with an OrderDate of “2008-11-11” from the table above.

Одоо бид дээрх хүснэгтээс “2008-11-11” огноотой мэдээллийг сонгохыг хүсэж байна.

We use the following SELECT statement:

Бид дараах SELECT өгүүлбэрийг ашиглана:

SELECT * FROM Orders WHERE OrderDate=‘2008-11-11’

The result-set will look like this:

Үр дүн нь дараах байдалтай харагдана:

OrderId

ЗахиалгаId

ProductName

БүтээгдэхүүнНэр

OrderDate

ЗахиалгаОгноо

1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

Note: Two dates can easily be compared if there is no time component involved!

Тайлбар: Хоёр огноог цагийн хэсэг ороогүй бол амархан харьцуулж болно!

Now, assume that the “Orders” table looks like this (notice the added time-component in the “OrderDate” column):

Одоо “Захиалгууд” хүснэгт ингэж харагдаж байна гэж үзье (хүснэгтийн “ЗахиалгаОгноо” баганад цагийн хэсгийг нэмсэнд анхаарна уу):

OrderId

ЗахиалгаId

ProductName

БүтээгдэхүүнНэр

OrderDate

БүтээгдэхүүнОгноо

1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

If we use the same SELECT statement as above:

Хэрэв бид дээрхтэй адил SELECT өгүүлбэр ашиглавал:

SELECT * FROM Orders WHERE OrderDate=‘2008-11-11’

We will get no result! This is because the query is looking only for dates with no time portion.

Бидэнд ямар ч үр дүн гарахгүй! Учир нь энэ лавлагаа зөвхөн огнооны хэсгийг хайж байгаа юм.

Tip: To keep your queries simple and easy to maintain, do not use time-components in your dates, unless you have to!

Зөвлөмж: Таны асуулгуудыг энгийн, засварлахад хялбар байлгахын тулд, шаардлагатай биш л бол огнооны хэсэгт цагийн хэсгийг бүү ашигла!

Powered by BetterDocs

Leave a Reply