SQL - Tarih İşlevleri

Aşağıdaki tabloda, SQL aracılığıyla kullanılabilen Tarih ve Saat ile ilgili tüm önemli işlevlerin bir listesi bulunmaktadır. RDBMS'niz tarafından desteklenen çeşitli başka işlevler vardır. Verilen liste MySQL RDBMS'ye dayanmaktadır.

Sr.No. İşlev ve Açıklama
1 TARİH EKLE()

Tarihleri ​​ekler

2 ZAMAN EKLE()

Zaman ekler

3 CONVERT_TZ ()

Bir saat diliminden diğerine dönüştürür

4 CURDATE ()

Geçerli tarihi verir

5 CURRENT_DATE (), CURRENT_DATE

CURDATE için benzer kelimeler ()

6 CURRENT_TIME (), CURRENT_TIME

CURTIME için benzer kelimeler ()

7 CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP

ŞİMDİ için eşanlamlılar ()

8 CURTIME ()

Geçerli saati verir

9 DATE_ADD ()

İki tarih ekler

10 TARİH FORMATI()

Biçim tarihi belirtildiği gibi

11 DATE_SUB ()

İki tarih çıkarır

12 TARİH ()

Tarih veya tarih saat ifadesinin tarih bölümünü ayıklar

13 DATEDIFF ()

İki tarih çıkarır

14 GÜN()

DAYOFMONTH ile eşanlamlı ()

15 GÜN ADI ()

Hafta içi gününün adını verir

16 AYIN GÜNÜ()

Ayın gününü verir (1-31)

17 HAFTANIN GÜNÜ()

Bağımsız değişkenin hafta içi dizinini verir

18 GÜN BOYU ()

Yılın gününü verir (1-366)

19 AYIKLA

Bir tarihin bir kısmını çıkarır

20 GÜN_DEN ()

Bir gün numarasını tarihe dönüştürür

21 FROM_UNIXTIME ()

Tarihi UNIX zaman damgası olarak biçimlendirir

22 SAAT()

Saati çıkarır

23 SON GUN

Bağımsız değişken için ayın son gününü verir

24 LOCALTIME (), LOCALTIME

ŞİMDİ ile eşanlamlı ()

25 LOCALTIMESTAMP, LOCALTIMESTAMP ()

ŞİMDİ ile eşanlamlı ()

26 YAPILAN ()

Yıldan ve yılın gününden bir tarih oluşturur

27 ZAMAN YARATMAK

ZAMAN YARATMAK()

28 MICROSECOND ()

Bağımsız değişkendeki mikrosaniyeleri döndürür

29 DAKİKA()

Bağımsız değişkenden dakikayı verir

30 AY()

Geçen tarihten ayı döndür

31 MONTHNAME ()

Ayın adını verir

32 ŞİMDİ ()

Geçerli tarih ve saati verir

33 PERIOD_ADD ()

Yıl-aya dönem ekler

34 PERIOD_DIFF ()

Dönemler arasındaki ayların sayısını verir

35 ÇEYREK ()

Bir tarih bağımsız değişkeninden çeyreği verir

36 SEC_TO_TIME ()

Saniyeleri 'HH: MM: SS' biçimine dönüştürür

37 İKİNCİ()

Saniyeyi verir (0-59)

38 STR_TO_DATE ()

Bir dizeyi tarihe dönüştürür

39 SUBDATE ()

Üç bağımsız değişkenle çağrıldığında DATE_SUB () ile eşanlamlıdır

40 SUBTIME ()

Çıkarma süreleri

41 SYSDATE ()

Fonksiyonun çalıştırıldığı zamanı verir

42 ZAMAN FORMATI()

Zaman olarak biçimler

43 TIME_TO_SEC ()

Saniyeye dönüştürülen bağımsız değişkeni verir

44 ZAMAN()

İfadenin geçen zaman bölümünü ayıklar

45 TIMEDIFF ()

Zaman çıkarır

46 TIMESTAMP ()

Tek bir bağımsız değişkenle bu işlev, tarih veya tarih saat ifadesini döndürür. İki argümanla, argümanların toplamı

47 TIMESTAMPADD ()

Bir datetime ifadesine bir aralık ekler

48 TIMESTAMPDIFF ()

Bir tarih saat ifadesinden bir aralığı çıkarır

49 TO_DAYS ()

Günlere dönüştürülen tarih bağımsız değişkenini verir

50 UNIX_TIMESTAMP ()

Bir UNIX zaman damgası verir

51 UTC_DATE ()

Geçerli UTC tarihini verir

52 UTC_TIME ()

Geçerli UTC saatini verir

53 UTC_TIMESTAMP ()

Geçerli UTC tarihini ve saatini verir

54 HAFTA()

Hafta numarasını verir

55 HAFTA İÇİ()

Hafta içi dizini verir

56 WEEKOFYEAR ()

Tarihin (1-53) takvim haftasını verir

57 YIL()

Yılı verir

58 YEARWEEK ()

Yılı ve haftayı verir

ADDDATE (tarih, INTERVAL ifade birimi), ADDDATE (ifade, günler)

İkinci bağımsız değişkenin INTERVAL formuyla çağrıldığında, ADDDATE () DATE_ADD () ile eşanlamlıdır. İlgili işlev SUBDATE (), DATE_SUB () ile eşanlamlıdır. INTERVAL birim bağımsız değişkeni hakkında bilgi için, DATE_ADD () için tartışmaya bakın.

mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', INTERVAL 31 DAY)                  |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

İkinci bağımsız değişkenin gün biçimi ile çağrıldığında, MySQL bunu ifadeye eklenecek tam sayı gün sayısı olarak ele alır.

mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ADDTIME (ifade1; ifade2)

ADDTIME (), ifade1'e ifade2 ekler ve sonucu döndürür. İfade1 bir zaman veya tarih saat ifadesidir, ifade2 ise bir zaman ifadesidir.

mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002') |
+---------------------------------------------------------+
| 1998-01-02 01:01:01.000001                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONVERT_TZ (dt, from_tz, to_tz)

Bu, dt tarih saat değerini to_tz tarafından verilen saat diliminden to_tz tarafından verilen zaman dilimine dönüştürür ve elde edilen değeri döndürür. Bağımsız değişkenler geçersizse bu işlev NULL döndürür.

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')           |
+---------------------------------------------------------+
| 2004-01-01 13:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')     |
+---------------------------------------------------------+
| 2004-01-01 22:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURDATE ()

İşlevin bir dizede mi yoksa sayısal bir bağlamda mı kullanıldığına bağlı olarak, geçerli tarihi 'YYYY-AA-GG' veya YYYYMMDD biçiminde bir değer olarak döndürür.

mysql> SELECT CURDATE();
+---------------------------------------------------------+
| CURDATE()                                               |
+---------------------------------------------------------+
| 1997-12-15                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURDATE() + 0;
+---------------------------------------------------------+
| CURDATE() + 0                                           |
+---------------------------------------------------------+
| 19971215                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURRENT_DATE ve CURRENT_DATE ()

CURRENT_DATE ve CURRENT_DATE (), CURDATE () ile eşanlamlıdır

CURTIME ()

İşlevin bir dizede mi yoksa sayısal bir bağlamda mı kullanıldığına bağlı olarak, geçerli saati 'HH: MM: SS' veya HHMMSS biçiminde bir değer olarak döndürür. Değer, geçerli saat diliminde ifade edilir.

mysql> SELECT CURTIME();
+---------------------------------------------------------+
| CURTIME()                                               |
+---------------------------------------------------------+
| 23:50:26                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURTIME() + 0;
+---------------------------------------------------------+
| CURTIME() + 0                                           |
+---------------------------------------------------------+
| 235026                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURRENT_TIME ve CURRENT_TIME ()

CURRENT_TIME ve CURRENT_TIME (), CURTIME () ile eşanlamlıdır.

CURRENT_TIMESTAMP ve CURRENT_TIMESTAMP ()

CURRENT_TIMESTAMP ve CURRENT_TIMESTAMP (), NOW () ile eşanlamlıdır.

TARİH (ifade)

Tarih veya tarih saat ifadesinin tarih kısmını ayıklar.

mysql> SELECT DATE('2003-12-31 01:02:03');
+---------------------------------------------------------+
| DATE('2003-12-31 01:02:03')                             |
+---------------------------------------------------------+
|  2003-12-31                                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATEDIFF (ifade1; ifade2)

DATEDIFF () ifade1'i döndürür. ifade2, bir tarihten diğerine gün cinsinden bir değer olarak ifade edilir. Hem ifade1 hem de ifade2 tarih veya tarih ve saat ifadeleridir. Hesaplamada değerlerin yalnızca tarih bölümleri kullanılır.

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
+---------------------------------------------------------+
| DATEDIFF('1997-12-31 23:59:59','1997-12-30')            |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_ADD (tarih, INTERVAL ifade birimi), DATE_SUB (tarih, INTERVAL ifade birimi)

Bu işlevler tarih aritmetiği gerçekleştirir. datebaşlangıç ​​tarihini belirten bir DATETIME veya DATE değeridir. exprbaşlangıç ​​tarihinden itibaren eklenecek veya çıkarılacak aralık değerini belirten bir ifadedir. İfade bir dizedir; negatif aralıklar için '-' ile başlayabilir.

Bir unit ifadenin yorumlanması gereken birimleri gösteren bir anahtar kelimedir.

INTERVAL anahtar sözcük ve birim belirticisi büyük / küçük harfe duyarlı değildir.

Aşağıdaki tablo, her birim değeri için ifade bağımsız değişkeninin beklenen şeklini gösterir.

birim değer Beklenen ifade biçimi
MICROSECOND MICROSECONDS
İKİNCİ SANİYE
DAKİKA DAKİKA
SAAT SAATLER
GÜN GÜN
HAFTA HAFTALAR
AY AYLAR
ÇEYREK ÇEYREKLER
YIL YILLAR
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES.MICROSECONDS'
MINUTE_SECOND "MINUTES: SECONDS"
HOUR_MICROSECOND 'HOURS.MICROSECONDS'
HOUR_SECOND 'HOURS: MINUTES: SECONDS'
HOUR_MINUTE 'HOURS: MINUTES'
DAY_MICROSECOND 'GÜNLER.MİKROSECONLAR'
DAY_SECOND "DAYS HOURS: MINUTES: SECONDS"
DAY_MINUTE "DAYS HOURS: MINUTES"
DAY_HOUR 'DAYS HOURS'
YIL AY "YIL-AY"

Değerler QUARTER ve WEEKMySQL 5.0.0'dan temin edilebilir. versiyon.

mysql> SELECT DATE_ADD('1997-12-31 23:59:59', 
   -> INTERVAL '1:1' MINUTE_SECOND);
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59', INTERVAL...             |
+---------------------------------------------------------+
| 1998-01-01 00:01:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
+---------------------------------------------------------+
| DATE_ADD('1999-01-01', INTERVAL 1 HOUR)                 |
+---------------------------------------------------------+
| 1999-01-01 01:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_FORMAT (tarih, biçim)

Bu komut, tarih değerini biçim dizesine göre biçimlendirir.

Biçim dizesinde aşağıdaki belirticiler kullanılabilir. Biçim belirleyici karakterlerden önce '%' karakteri gereklidir.

Sr.No. Tanımlayıcı ve Açıklama
1

%a

Kısaltılmış hafta içi adı (Paz..Sat)

2

%b

Kısaltılmış ay adı (Jan..Dec)

3

%c

Ay, sayısal (0..12)

4

%D

İngilizce son eki olan ayın günü (0, 1, 2, 3,.)

5

%d

Ayın günü, sayısal (00..31)

6

%e

Ayın günü, sayısal (0..31)

7

%f

Mikrosaniye (000000..999999)

8

%H

Saat (00..23)

9

%h

Saat (01..12)

10

%I

Saat (01..12)

11

%i

Dakika, sayısal (00..59)

12

%j

Yılın günü (001..366)

13

%k

Saat (0..23)

14

%l

Saat (1..12)

15

%M

Ay adı (Ocak..Aralık)

16

%m

Ay, sayısal (00..12)

17

%p

AM veya PM

18

%r

Zaman, 12 saat (ss: dd: ss ve ardından AM veya PM)

19

%S

Saniye (00..59)

20

%s

Saniye (00..59)

21

%T

Zaman, 24 saat (ss: dd: ss)

22

%U

Hafta (00..53), Pazar haftanın ilk günüdür

23

%u

Hafta (00..53), Pazartesi haftanın ilk günüdür

24

%V

Pazarın haftanın ilk günü olduğu Hafta (01..53); % X ile kullanıldı

25

%v

Pazartesi, haftanın ilk günü olduğu Hafta (01..53); % x ile kullanıldı

26

%W

Hafta içi adı (Pazar .. Cumartesi)

27

%w

Haftanın günü (0 = Pazar. 6 = Cumartesi)

28

%X

Pazarın haftanın ilk günü olduğu hafta için yıl, sayısal, dört basamaklı; % V ile kullanıldı

29

%x

Pazartesi haftanın ilk günü olduğu hafta için yıl, sayısal, dört basamaklı; % v ile kullanıldı

30

%Y

Yıl, sayısal, dört basamaklı

31

%y

Yıl, sayısal (iki basamaklı)

32

%%

Gerçek bir%. karakter

33

%x

x, any.x için. yukarıda listelenmemiş

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y')          |
+---------------------------------------------------------+
| Saturday October 1997                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00'
   -> '%H %k %I %r %T %S %w');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00.......                 |
+---------------------------------------------------------+
|  22 22 10 10:23:00 PM 22:23:00 00 6                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_SUB (tarih, INTERVAL ifade birimi)

Bu, DATE_ADD () işlevine benzer.

GÜN (tarih)

GÜN (), DAYOFMONTH () işlevinin eşanlamlısıdır.

DAYNAME (tarih)

Tarih için haftanın gününün adını verir.

mysql> SELECT DAYNAME('1998-02-05');
+---------------------------------------------------------+
| DAYNAME('1998-02-05')                                   |
+---------------------------------------------------------+
| Thursday                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFMONTH (tarih)

0 - 31 aralığında tarih için ayın gününü döndürür.

mysql> SELECT DAYOFMONTH('1998-02-03');
+---------------------------------------------------------+
| DAYOFMONTH('1998-02-03')                                |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFWEEK (tarih)

Tarihin hafta içi dizinini döndürür (1 = Pazar, 2 = Pazartesi,., 7 = Cumartesi). Bu indeks değerleri ODBC standardına karşılık gelir.

mysql> SELECT DAYOFWEEK('1998-02-03');
+---------------------------------------------------------+
|DAYOFWEEK('1998-02-03')                                  |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFYEAR (tarih)

1 - 366 aralığında tarih için yılın gününü döndürür.

mysql> SELECT DAYOFYEAR('1998-02-03');
+---------------------------------------------------------+
| DAYOFYEAR('1998-02-03')                                 |
+---------------------------------------------------------+
| 34                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ÖZÜT (tarihten itibaren birim)

EXTRACT () işlevi, DATE_ADD () veya DATE_SUB () ile aynı türden birim tanımlayıcıları kullanır, ancak tarih aritmetiği yapmak yerine tarihten bölümleri çıkarır.

mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
+---------------------------------------------------------+
| EXTRACT(YEAR FROM '1999-07-02')                         |
+---------------------------------------------------------+
| 1999                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
+---------------------------------------------------------+
| EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03')          |
+---------------------------------------------------------+
| 199907                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

GÜN_DEN (N)

N gün sayısı verildiğinde, bir TARİH değeri döndürür.

mysql> SELECT FROM_DAYS(729669);
+---------------------------------------------------------+
| FROM_DAYS(729669)                                       |
+---------------------------------------------------------+
| 1997-10-07                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Note- Eski tarihlerde FROM_DAYS () öğesini dikkatli kullanın. Miladi takvimin (1582) ortaya çıkışından önceki değerlerle kullanılması amaçlanmamıştır.

FROM_UNIXTIME (unix_timestamp)

FROM_UNIXTIME (unix_timestamp, biçim)

Şunun bir temsilini verir unix_timestampişlevin bir dizede mi yoksa sayısal bağlamda mı kullanıldığına bağlı olarak 'YYYY-AA-GG SS: AA: SS veya YYYYMMDDHHMMSS biçiminde bir değer olarak bağımsız değişken. Değer, geçerli saat diliminde ifade edilir. Unix_timestamp argümanı, tarafından üretilen dahili bir zaman damgası değerleridir.UNIX_TIMESTAMP() işlevi.

Biçim verilmişse, sonuç, girişte listelenenle aynı şekilde kullanılan biçim dizesine göre biçimlendirilir. DATE_FORMAT() işlevi.

mysql> SELECT FROM_UNIXTIME(875996580);
+---------------------------------------------------------+
| FROM_UNIXTIME(875996580)                                |
+---------------------------------------------------------+
| 1997-10-04 22:23:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

HOUR (saat)

Zaman için saati döndürür. Dönen değer aralığı, günün saati değerleri için 0 ile 23 arasındadır. Ancak, TIME değerlerinin aralığı aslında çok daha büyüktür, bu nedenle HOUR, 23'ten büyük değerler döndürebilir.

mysql> SELECT HOUR('10:05:03');
+---------------------------------------------------------+
| HOUR('10:05:03')                                        |
+---------------------------------------------------------+
| 10                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LAST_DAY (tarih)

Bir tarih veya tarih saat değeri alır ve ayın son günü için karşılık gelen değeri döndürür. Bağımsız değişken geçersizse NULL döndürür.

mysql> SELECT LAST_DAY('2003-02-05');
+---------------------------------------------------------+
| LAST_DAY('2003-02-05')                                  |
+---------------------------------------------------------+
| 2003-02-28                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOCALTIME ve LOCALTIME ()

LOCALTIME ve LOCALTIME (), NOW () ile eşanlamlıdır.

LOCALTIMESTAMP ve LOCALTIMESTAMP ()

LOCALTIMESTAMP ve LOCALTIMESTAMP (), NOW () ile eşanlamlıdır.

MAKEDATE (yıl, yılsonu)

Yıl ve yılın günü değerleri verilen bir tarih döndürür. Dayofyear değeri 0'dan büyük olmalıdır, aksi takdirde sonuç NULL olacaktır.

mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
+---------------------------------------------------------+
| MAKEDATE(2001,31), MAKEDATE(2001,32)                    |
+---------------------------------------------------------+
| '2001-01-31', '2001-02-01'                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MAKETIME (saat, dakika, saniye)

Saat, dakika ve saniye bağımsız değişkenlerinden hesaplanan bir zaman değeri döndürür.

mysql> SELECT MAKETIME(12,15,30);
+---------------------------------------------------------+
| MAKETIME(12,15,30)                                      |
+---------------------------------------------------------+
| '12:15:30'                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MICROSECOND (ifade)

Zaman veya tarih saat ifadesindeki (ifade) mikrosaniyeleri 0 ile 999999 aralığında bir sayı olarak döndürür.

mysql> SELECT MICROSECOND('12:00:00.123456');
+---------------------------------------------------------+
| MICROSECOND('12:00:00.123456')                          |
+---------------------------------------------------------+
| 123456                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MINUTE (zaman)

0 - 59 aralığında, dakikayı döndürür.

mysql> SELECT MINUTE('98-02-03 10:05:03');
+---------------------------------------------------------+
| MINUTE('98-02-03 10:05:03')                             |
+---------------------------------------------------------+
| 5                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Ay Tarihi)

0 - 12 aralığında tarih için ayı döndürür.

mysql> SELECT MONTH('1998-02-03')
+---------------------------------------------------------+
| MONTH('1998-02-03')                                     |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MONTHNAME (tarih)

Bir tarih için ayın tam adını verir.

mysql> SELECT MONTHNAME('1998-02-05');
+---------------------------------------------------------+
| MONTHNAME('1998-02-05')                                 |
+---------------------------------------------------------+
| February                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ŞİMDİ ()

İşlevin bir dizede mi yoksa sayısal bağlamda mı kullanıldığına bağlı olarak, geçerli tarih ve saati 'YYYY-AA-GG SS: AA: SS' veya YYYYMMDDHHMMSS biçiminde bir değer olarak döndürür. Bu değer, mevcut saat diliminde ifade edilir.

mysql> SELECT NOW();
+---------------------------------------------------------+
| NOW()                                                   |
+---------------------------------------------------------+
| 1997-12-15 23:50:26                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_ADD (P; N)

P dönemine N ay ekler (YYMM veya YYYYMM biçiminde). YYYYAAG biçiminde bir değer döndürür. P periyot bağımsız değişkeninin bir tarih değeri olmadığını unutmayın.

mysql> SELECT PERIOD_ADD(9801,2);
+---------------------------------------------------------+
| PERIOD_ADD(9801,2)                                      |
+---------------------------------------------------------+
| 199803                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_DIFF (P1; P2)

P1 ve P2 dönemleri arasındaki ay sayısını döndürür. Bu P1 ve P2 dönemleri YYMM veya YYYYMM formatında olmalıdır. P1 ve P2 dönem bağımsız değişkenlerinin tarih değerleri olmadığını unutmayın.

mysql> SELECT PERIOD_DIFF(9802,199703);
+---------------------------------------------------------+
| PERIOD_DIFF(9802,199703)                                |
+---------------------------------------------------------+
| 11                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

QUARTER (tarih)

1 - 4 aralığında tarih için yılın çeyreğini döndürür.

mysql> SELECT QUARTER('98-04-01');
+---------------------------------------------------------+
| QUARTER('98-04-01')                                     |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

İkinci kez)

0 - 59 aralığında saniyeyi döndürür.

mysql> SELECT SECOND('10:05:03');
+---------------------------------------------------------+
| SECOND('10:05:03')                                      |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SEC_TO_TIME (saniye)

İşlevin bir dizede mi yoksa sayısal bağlamda mı kullanıldığına bağlı olarak saat, dakika ve saniyeye dönüştürülen saniye bağımsız değişkenini 'SS: DD: SS' veya HHMMSS biçiminde bir değer olarak döndürür.

mysql> SELECT SEC_TO_TIME(2378);
+---------------------------------------------------------+
| SEC_TO_TIME(2378)                                       |
+---------------------------------------------------------+
| 00:39:38                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STR_TO_DATE (str, biçim)

Bu, DATE_FORMAT () işlevinin tersidir. Bir dizge ve bir biçim dizesi biçimi alır. STR_TO_DATE () işlevi, biçim dizesi hem tarih hem de saat bölümleri içeriyorsa bir DATETIME değeri döndürür. Aksi takdirde, dize yalnızca tarih veya saat bölümlerini içeriyorsa bir TARİH veya SAAT değeri döndürür.

mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
+---------------------------------------------------------+
| STR_TO_DATE('04/31/2004', '%m/%d/%Y')                   |
+---------------------------------------------------------+
| 2004-04-31                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBDATE (tarih, INTERVAL ifade birimi) ve SUBDATE (ifade, günler)

İkinci bağımsız değişkenin INTERVAL biçimiyle çağrıldığında, SUBDATE () DATE_SUB () ile eşanlamlıdır. INTERVAL birim bağımsız değişkeni hakkında bilgi için, DATE_ADD () için tartışmaya bakın.

mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_SUB('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1997-12-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| SUBDATE('1998-01-02', INTERVAL 31 DAY)                  |
+---------------------------------------------------------+
| 1997-12-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBTIME (ifade1; ifade2)

SUBTIME () işlevi ifade1'i döndürür. ifade2, ifade1 ile aynı biçimde bir değer olarak ifade edilir. İfade1 değeri bir saat veya tarih saat ifadesidir, ifade2 değeri ise bir zaman ifadesidir.

mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999',
   -> '1 1:1:1.000002');
+---------------------------------------------------------+
| SUBTIME('1997-12-31 23:59:59.999999'...                 |
+---------------------------------------------------------+
| 1997-12-30 22:58:58.999997                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SYSDATE ()

İşlevin bir dizede mi yoksa sayısal bir bağlamda mı kullanıldığına bağlı olarak, geçerli tarih ve saati 'YYYY-AA-GG SS: AA: SS' veya YYYYMMDDHHMMSS biçiminde bir değer olarak döndürür.

mysql> SELECT SYSDATE();
+---------------------------------------------------------+
| SYSDATE()                                               |
+---------------------------------------------------------+
| 2006-04-12 13:47:44                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME (ifade)

Zamanın zaman bölümünü veya tarih saat ifadesini ayıklar expr ve onu bir dizge olarak döndürür.

mysql> SELECT TIME('2003-12-31 01:02:03');
+---------------------------------------------------------+
| TIME('2003-12-31 01:02:03')                             |
+---------------------------------------------------------+
| 01:02:03                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMEDIFF (ifade1; ifade2)

TIMEDIFF () işlevi ifade1'i döndürür. ifade2 bir zaman değeri olarak ifade edilir. Bu ifade1 ve ifade2 değerleri saat veya tarih ve saat ifadeleridir, ancak her ikisi de aynı türde olmalıdır.

mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
   -> '1997-12-30 01:01:01.000002');
+---------------------------------------------------------+
| TIMEDIFF('1997-12-31 23:59:59.000001'.....              |
+---------------------------------------------------------+
|  46:58:57.999999                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMP (ifade), TIMESTAMP (ifade1, ifade2)

Tek bir bağımsız değişkenle bu işlev, tarih veya tarih saat ifadesini tarih saat değeri olarak döndürür. İki bağımsız değişkenle, expr2 zaman ifadesini tarih veya tarih saat ifadesine eklerexpr1 ve sonucu tarih saat değeri olarak döndürür.

mysql> SELECT TIMESTAMP('2003-12-31');
+---------------------------------------------------------+
| TIMESTAMP('2003-12-31')                                 |
+---------------------------------------------------------+
| 2003-12-31 00:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPADD (birim, aralık, tarihsaat_expr)

Bu işlev, tamsayı ifade aralığını tarih veya tarih saat ifadesine ekler datetime_expr. Aralık birimi, aşağıdaki değerlerden biri olması gereken birim bağımsız değişkeni tarafından verilir -

  • FRAC_SECOND
  • SECOND, MINUTE
  • HOUR, DAY
  • WEEK
  • MONTH
  • QUARTER veya
  • YEAR

Birim değeri, gösterilen anahtar sözcüklerden biri kullanılarak veya bir SQL_TSI_ öneki ile belirtilebilir.

Örneğin, DAY ve SQL_TSI_DAY yasaldır.

mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
+---------------------------------------------------------+
| TIMESTAMPADD(MINUTE,1,'2003-01-02')                     |
+---------------------------------------------------------+
| 2003-01-02 00:01:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPDIFF (birim, tarihsaat_expr1, tarihsaat_expr2)

Tarih veya tarih saat ifadeleri datetime_expr1 ve datetime_expr2 arasındaki tam sayı farkını döndürür. Sonucun birimi, birim bağımsız değişkeni tarafından verilir. Birim için yasal değerler, TIMESTAMPADD () işlevinin açıklamasında listelenenlerle aynıdır.

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
+---------------------------------------------------------+
| TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01')          |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_FORMAT (saat, biçim)

Bu işlev DATE_FORMAT () işlevi gibi kullanılır, ancak biçim dizesi yalnızca saat, dakika ve saniye için biçim belirleyicileri içerebilir.

Zaman değeri 23'ten büyük bir saat bölümü içeriyorsa,%H ve %k saat biçimi belirleyicileri, 0 ile 23 arasındaki normal aralıktan daha büyük bir değer üretir. Diğer saat biçimi belirleyicileri, saat değeri 12'yi üretir.

mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
+---------------------------------------------------------+
| TIME_FORMAT('100:00:00', '%H %k %h %I %l')              |
+---------------------------------------------------------+
| 100 100 04 04 4                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_TO_SEC (zaman)

Saniyeye dönüştürülen zaman bağımsız değişkenini döndürür.

mysql> SELECT TIME_TO_SEC('22:23:00');
+---------------------------------------------------------+
| TIME_TO_SEC('22:23:00')                                 |
+---------------------------------------------------------+
| 80580                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Bugünün tarihi)

Bir tarih verildiğinde, bir gün numarası döndürür (0 yılından bu yana geçen günlerin sayısı).

mysql> SELECT TO_DAYS(950501);
+---------------------------------------------------------+
| TO_DAYS(950501)                                         |
+---------------------------------------------------------+
| 728779                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UNIX_TIMESTAMP (), UNIX_TIMESTAMP (tarih)

Bağımsız değişken olmadan çağrılırsa, bu işlev işaretsiz bir tamsayı olarak bir Unix zaman damgası ('1970-01-01 00:00:00' UTC'den sonraki saniye) döndürür. UNIX_TIMESTAMP () bir tarih bağımsız değişkeniyle çağrılırsa, bağımsız değişkenin değerini '1970-01-01 00:00:00' UTC'den bu yana saniye olarak döndürür. tarih bir DATE dizesi, DATETIME dizesi, TIMESTAMP veya YYAAGG veya YYYYAAGG biçiminde bir sayı olabilir.

mysql> SELECT UNIX_TIMESTAMP();
+---------------------------------------------------------+
| UNIX_TIMESTAMP()                                        |
+---------------------------------------------------------+
| 882226357                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00')                   |
+---------------------------------------------------------+
| 875996580                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_DATE, UTC_DATE ()

İşlevin bir dizede mi yoksa sayısal bağlamda mı kullanıldığına bağlı olarak, geçerli UTC tarihini "YYYY-AA-GG" veya YYYYMMDD biçiminde bir değer olarak döndürür.

mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
+---------------------------------------------------------+
| UTC_DATE(), UTC_DATE() + 0                              |
+---------------------------------------------------------+
| 2003-08-14, 20030814                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIME, UTC_TIME ()

İşlevin bir dizede mi yoksa sayısal bağlamda mı kullanıldığına bağlı olarak, geçerli UTC saatini "HH: MM: SS" veya HHMMSS biçiminde bir değer olarak döndürür.

mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
+---------------------------------------------------------+
| UTC_TIME(), UTC_TIME() + 0                              |
+---------------------------------------------------------+
| 18:07:53, 180753                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIMESTAMP, UTC_TIMESTAMP ()

İşlevin bir dizede mi yoksa sayısal bir bağlamda mı kullanıldığına bağlı olarak geçerli UTC tarih ve saatini 'YYYY-AA-GG SS: DD: SS' veya YYYYMMDDHHMMSS biçiminde bir değer olarak döndürür.

mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
+---------------------------------------------------------+
| UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0                    |
+---------------------------------------------------------+
| 2003-08-14 18:08:04, 20030814180804                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEK (tarih [, mod])

Bu işlev tarih için hafta numarasını döndürür. WEEK () 'in iki bağımsız değişkenli biçimi, haftanın Pazar mı yoksa Pazartesi mi başladığını ve dönüş değerinin 0 ile 53 arasında mı yoksa 1 ile 53 arasında mı olması gerektiğini belirlemenize olanak tanır. Mod bağımsız değişkeni atlanırsa, default_week_format sistem değişkeninin değeri kullanılır

Mod Haftanın ilk günü Aralık 1. hafta ilk haftadır.
0 Pazar 0-53 bu yıl bir Pazar günü ile
1 Pazartesi 0-53 bu yıl 3 günden fazla
2 Pazar 1-53 bu yıl bir Pazar günü ile
3 Pazartesi 1-53 bu yıl 3 günden fazla
4 Pazar 0-53 bu yıl 3 günden fazla
5 Pazartesi 0-53 bu yıl bir pazartesi ile
6 Pazar 1-53 bu yıl 3 günden fazla
7 Pazartesi 1-53 bu yıl bir pazartesi ile
mysql> SELECT WEEK('1998-02-20');
+---------------------------------------------------------+
| WEEK('1998-02-20')                                      |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKDAY (tarih)

Tarihin hafta içi dizinini döndürür (0 = Pazartesi, 1 = Salı,. 6 = Pazar).

mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
+---------------------------------------------------------+
| WEEKDAY('1998-02-03 22:23:00')                          |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKOFYEAR (tarih)

Tarihin takvim haftasını 1 - 53 aralığında bir sayı olarak döndürür. WEEKOFYEAR () WEEK (tarih, 3) ile eşdeğer bir uyumluluk işlevidir.

mysql> SELECT WEEKOFYEAR('1998-02-20');
+---------------------------------------------------------+
| WEEKOFYEAR('1998-02-20')                                |
+---------------------------------------------------------+
| 8                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

YIL (tarih)

1000 - 9999 aralığında tarih için yılı veya sıfır için 0 değerini döndürür. tarih.

mysql> SELECT YEAR('98-02-03');
+---------------------------------------------------------+
| YEAR('98-02-03')                                        |
+---------------------------------------------------------+
| 1998                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

YEARWEEK (tarih), YEARWEEK (tarih, mod)

Bir tarih için yıl ve haftayı döndürür. Mod argümanı tam olarak WEEK () işlevinin mod argümanı gibi çalışır. Sonuçtaki yıl, yılın ilk ve son haftası için tarih bağımsız değişkenindeki yıldan farklı olabilir.

mysql> SELECT YEARWEEK('1987-01-01');
+---------------------------------------------------------+
| YEAR('98-02-03')YEARWEEK('1987-01-01')                  |
+---------------------------------------------------------+
| 198653                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Note - Hafta numarası, WEEK () işlevinin 0 veya 1 isteğe bağlı bağımsız değişkenler için (0) döndüreceğinden farklıdır, çünkü WEEK (), verilen yıl bağlamında haftayı döndürür.