SQL - Fungsi Tanggal
Tabel berikut memiliki daftar semua fungsi penting terkait Tanggal dan Waktu yang tersedia melalui SQL. Ada berbagai fungsi lain yang didukung oleh RDBMS Anda. Daftar yang diberikan didasarkan pada MySQL RDBMS.
Sr.No. | Deskripsi fungsi |
---|---|
1 | TAMBAHKAN () Menambahkan tanggal |
2 | TAMBAHAN () Menambahkan waktu |
3 | CONVERT_TZ () Mengonversi dari satu zona waktu ke zona waktu lainnya |
4 | CURDATE () Mengembalikan tanggal sekarang |
5 | CURRENT_DATE (), CURRENT_DATE Sinonim untuk CURDATE () |
6 | CURRENT_TIME (), CURRENT_TIME Sinonim untuk CURTIME () |
7 | CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP Sinonim untuk NOW () |
8 | CURTIME () Mengembalikan waktu saat ini |
9 | DATE_ADD () Menambahkan dua tanggal |
10 | FORMAT TANGGAL() Format tanggal seperti yang ditentukan |
11 | DATE_SUB () Mengurangi dua tanggal |
12 | TANGGAL() Mengekstrak bagian tanggal dari ekspresi tanggal atau waktu |
13 | DATEDIFF () Mengurangi dua tanggal |
14 | HARI() Sinonim dari DAYOFMONTH () |
15 | DAYNAME () Mengembalikan nama hari kerja |
16 | DAYOFMONTH () Mengembalikan hari dalam sebulan (1-31) |
17 | HARI DALAM SEMINGGU() Mengembalikan indeks hari kerja dari argumen |
18 | DAYOFYEAR () Mengembalikan hari dalam setahun (1-366) |
19 | EKSTRAK Mengekstrak bagian dari tanggal |
20 | FROM_DAYS () Mengonversi nomor hari menjadi tanggal |
21 | FROM_UNIXTIME () Format tanggal sebagai stempel waktu UNIX |
22 | JAM() Mengekstrak jam |
23 | HARI TERAKHIR Mengembalikan hari terakhir bulan untuk argumen |
24 | LOCALTIME (), LOCALTIME Sinonim dari SEKARANG () |
25 | LOCALTIMESTAMP, LOCALTIMESTAMP () Sinonim dari SEKARANG () |
26 | MAKEDATE () Membuat tanggal dari tahun dan hari dalam setahun |
27 | MAKETIME MAKETIME () |
28 | MIKRODETIK() Mengembalikan mikrodetik dari argumen |
29 | MENIT() Mengembalikan menit dari argumen |
30 | BULAN() Kembalikan bulan sejak tanggal berlalu |
31 | MONTHNAME () Mengembalikan nama bulan |
32 | SEKARANG() Mengembalikan tanggal dan waktu saat ini |
33 | PERIOD_ADD () Menambahkan periode ke tahun-bulan |
34 | PERIOD_DIFF () Mengembalikan jumlah bulan antar periode |
35 | PEREMPAT() Mengembalikan kuartal dari argumen tanggal |
36 | SEC_TO_TIME () Mengonversi detik ke format 'HH: MM: SS' |
37 | KEDUA() Mengembalikan detik (0-59) |
38 | STR_TO_DATE () Mengubah string menjadi tanggal |
39 | SUBDATE () Ketika dipanggil dengan tiga argumen, sinonim untuk DATE_SUB () |
40 | SUBTIME () Mengurangi waktu |
41 | SYSDATE () Mengembalikan waktu saat fungsi dijalankan |
42 | FORMAT WAKTU() Format sebagai waktu |
43 | TIME_TO_SEC () Mengembalikan argumen yang diubah menjadi detik |
44 | WAKTU() Mengekstrak bagian waktu dari ekspresi yang diteruskan |
45 | TIMEDIFF () Mengurangi waktu |
46 | TIMESTAMP () Dengan satu argumen, fungsi ini mengembalikan ekspresi tanggal atau waktu. Dengan dua argumen, jumlah argumen |
47 | TIMESTAMPADD () Menambahkan interval ke ekspresi datetime |
48 | TIMESTAMPDIFF () Mengurangi interval dari ekspresi datetime |
49 | TO_DAYS () Mengembalikan argumen tanggal yang diubah menjadi hari |
50 | UNIX_TIMESTAMP () Mengembalikan stempel waktu UNIX |
51 | UTC_DATE () Mengembalikan tanggal UTC saat ini |
52 | UTC_TIME () Mengembalikan waktu UTC saat ini |
53 | UTC_TIMESTAMP () Mengembalikan tanggal dan waktu UTC saat ini |
54 | MINGGU() Mengembalikan angka minggu |
55 | HARI KERJA() Mengembalikan indeks hari kerja |
56 | WEEKOFYEAR () Mengembalikan minggu kalender dari tanggal tersebut (1-53) |
57 | TAHUN() Mengembalikan tahun |
58 | TAHUNAN () Mengembalikan tahun dan minggu |
ADDDATE (tanggal, INTERVAL unit expr), ADDDATE (expr, hari)
Saat dipanggil dengan bentuk INTERVAL dari argumen kedua, ADDDATE () adalah sinonim untuk DATE_ADD (). Fungsi terkait SUBDATE () adalah sinonim untuk DATE_SUB (). Untuk informasi tentang argumen unit INTERVAL, lihat diskusi untuk DATE_ADD ().
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)
Ketika dipanggil dengan bentuk hari dari argumen kedua, MySQL memperlakukannya sebagai bilangan bulat jumlah hari yang akan ditambahkan ke expr.
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 (expr1, expr2)
ADDTIME () menambahkan expr2 ke expr1 dan mengembalikan hasilnya. Ekspresi expr1 adalah ekspresi waktu atau waktu, sedangkan ekspresi 2 adalah ekspresi waktu.
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)
Ini mengonversi nilai datetime dt dari zona waktu yang diberikan oleh from_tz ke zona waktu yang diberikan oleh to_tz dan mengembalikan nilai yang dihasilkan. Fungsi ini mengembalikan NULL jika argumen tidak valid.
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 ()
Mengembalikan tanggal saat ini sebagai nilai dalam format 'YYYY-MM-DD' atau YYYYMMDD, bergantung pada apakah fungsi tersebut digunakan dalam string atau dalam konteks numerik.
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 dan CURRENT_DATE ()
CURRENT_DATE dan CURRENT_DATE () adalah sinonim untuk CURDATE ()
CURTIME ()
Mengembalikan waktu saat ini sebagai nilai dalam format 'HH: MM: SS' atau HHMMSS, bergantung pada apakah fungsi tersebut digunakan dalam string atau dalam konteks numerik. Nilainya dinyatakan dalam zona waktu saat ini.
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 dan CURRENT_TIME ()
CURRENT_TIME dan CURRENT_TIME () adalah sinonim untuk CURTIME ().
CURRENT_TIMESTAMP dan CURRENT_TIMESTAMP ()
CURRENT_TIMESTAMP dan CURRENT_TIMESTAMP () adalah sinonim untuk NOW ().
DATE (expr)
Mengekstrak bagian tanggal dari tanggal atau ekspresi ekspresi datetime.
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 (expr1, expr2)
DATEDIFF () mengembalikan expr1. expr2 dinyatakan sebagai nilai dalam hari dari satu tanggal ke tanggal lainnya. Baik expr1 dan expr2 adalah ekspresi tanggal atau tanggal dan waktu. Hanya bagian tanggal dari nilai yang digunakan dalam penghitungan.
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 (tanggal, INTERVAL unit expr), DATE_SUB (tanggal, INTERVAL unit expr)
Fungsi-fungsi ini melakukan aritmatika tanggal. Itudateadalah nilai DATETIME atau DATE yang menentukan tanggal mulai. Ituexpradalah ekspresi yang menentukan nilai interval yang akan ditambahkan atau dikurangi dari tanggal mulai. Ekspr adalah string; ini mungkin dimulai dengan '-' untuk interval negatif.
SEBUAH unit adalah kata kunci yang menunjukkan unit di mana ekspresi harus diinterpretasikan.
Itu INTERVAL kata kunci dan penentu unit tidak peka huruf besar / kecil.
Tabel berikut menunjukkan bentuk yang diharapkan dari argumen expr untuk setiap nilai unit.
Nilai unit | ExprFormat yang diharapkan |
---|---|
MIKRODETIK | MICROSECONDS |
KEDUA | DETIK |
MENIT | MENIT |
JAM | JAM |
HARI | HARI |
MINGGU | MINGGU |
BULAN | BULAN |
PEREMPAT | QUARTERS |
TAHUN | TAHUN |
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 | 'DAYS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS: MINUTES: SECONDS' |
DAY_MINUTE | 'DAYS HOURS: MINUTES' |
DAY_HOUR | 'DAYS HOURS' |
TAHUN BULAN | 'YEARS-MONTHS' |
Nilai QUARTER dan WEEKtersedia dari MySQL 5.0.0. Versi: kapan.
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 (tanggal, format)
Perintah ini memformat nilai tanggal sesuai dengan format string.
Penentu berikut dapat digunakan dalam format string. Karakter '%' diperlukan sebelum karakter penentu format.
Sr.No. | Penentu & Deskripsi |
---|---|
1 | %a Nama hari kerja yang disingkat (Sun..Sat) |
2 | %b Nama bulan singkat (Jan..Dec) |
3 | %c Bulan, numerik (0..12) |
4 | %D Hari dalam sebulan dengan akhiran bahasa Inggris (0, 1, 2, 3,.) |
5 | %d Hari dalam sebulan, numerik (00..31) |
6 | %e Hari dalam sebulan, numerik (0..31) |
7 | %f Mikrodetik (000000..999999) |
8 | %H Jam (00..23) |
9 | %h Jam (01..12) |
10 | %I Jam (01..12) |
11 | %i Menit, numerik (00..59) |
12 | %j Hari dalam setahun (001..366) |
13 | %k Jam (0..23) |
14 | %l Jam (1..12) |
15 | %M Nama bulan (Januari..Desember) |
16 | %m Bulan, numerik (00..12) |
17 | %p AM atau PM |
18 | %r Waktu, 12 jam (jj: mm: dd diikuti oleh AM atau PM) |
19 | %S Detik (00..59) |
20 | %s Detik (00..59) |
21 | %T Waktu, 24-jam (hh: mm: ss) |
22 | %U Minggu (00..53), dimana hari Minggu adalah hari pertama dalam seminggu |
23 | %u Minggu (00..53), dimana Senin adalah hari pertama dalam seminggu |
24 | %V Minggu (01..53), dimana Minggu adalah hari pertama dalam seminggu; digunakan dengan% X |
25 | %v Minggu (01..53), dimana Senin adalah hari pertama dalam seminggu; digunakan dengan% x |
26 | %W Nama hari kerja (Minggu..Sabtu) |
27 | %w Hari dalam seminggu (0 = Minggu..6 = Sabtu) |
28 | %X Tahun untuk minggu dimana hari Minggu adalah hari pertama dalam seminggu, numerik, empat digit; digunakan dengan% V |
29 | %x Tahun untuk minggu ini, di mana Senin adalah hari pertama dalam seminggu, numerik, empat digit; digunakan dengan% v |
30 | %Y Tahun, numerik, empat digit |
31 | %y Tahun, numerik (dua digit) |
32 | %% A literal.%. karakter |
33 | %x x, untuk any.x. tidak tercantum di atas |
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 (tanggal, INTERVAL unit expr)
Ini mirip dengan fungsi DATE_ADD ().
Hari tanggal)
DAY () adalah sinonim dari fungsi DAYOFMONTH ().
DAYNAME (tanggal)
Mengembalikan nama hari kerja untuk tanggal.
mysql> SELECT DAYNAME('1998-02-05');
+---------------------------------------------------------+
| DAYNAME('1998-02-05') |
+---------------------------------------------------------+
| Thursday |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DAYOFMONTH (tanggal)
Mengembalikan hari dalam sebulan untuk tanggal, dalam rentang 0 sampai 31.
mysql> SELECT DAYOFMONTH('1998-02-03');
+---------------------------------------------------------+
| DAYOFMONTH('1998-02-03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DAYOFWEEK (tanggal)
Mengembalikan indeks hari kerja untuk tanggal (1 = Minggu, 2 = Senin,., 7 = Sabtu). Nilai indeks ini sesuai dengan standar ODBC.
mysql> SELECT DAYOFWEEK('1998-02-03');
+---------------------------------------------------------+
|DAYOFWEEK('1998-02-03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
DAYOFYEAR (tanggal)
Mengembalikan hari dalam setahun untuk tanggal, dalam rentang 1 sampai 366.
mysql> SELECT DAYOFYEAR('1998-02-03');
+---------------------------------------------------------+
| DAYOFYEAR('1998-02-03') |
+---------------------------------------------------------+
| 34 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
EKSTRAK (satuan DARI tanggal)
Fungsi EXTRACT () menggunakan jenis penentu unit yang sama seperti DATE_ADD () atau DATE_SUB (), tetapi mengekstrak bagian dari tanggal daripada menjalankan aritmatika tanggal.
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)
FROM_DAYS (N)
Diberikan nomor hari N, mengembalikan nilai DATE.
mysql> SELECT FROM_DAYS(729669);
+---------------------------------------------------------+
| FROM_DAYS(729669) |
+---------------------------------------------------------+
| 1997-10-07 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Note- Gunakan FROM_DAYS () dengan hati-hati pada tanggal lama. Ini tidak dimaksudkan untuk digunakan dengan nilai-nilai yang mendahului munculnya kalender Gregorian (1582).
FROM_UNIXTIME (unix_timestamp)
FROM_UNIXTIME (unix_timestamp, format)
Mengembalikan representasi dari unix_timestampargumen sebagai nilai dalam format 'YYYY-MM-DD HH: MM: SS atau YYYYMMDDHHMMSS, bergantung pada apakah fungsi tersebut digunakan dalam string atau dalam konteks numerik. Nilainya dinyatakan dalam zona waktu saat ini. Argumen unix_timestamp adalah nilai stempel waktu internal, yang dihasilkan olehUNIX_TIMESTAMP() fungsi.
Jika format diberikan, hasilnya diformat sesuai dengan format string, yang digunakan dengan cara yang sama seperti yang tercantum dalam entri untuk DATE_FORMAT() fungsi.
mysql> SELECT FROM_UNIXTIME(875996580);
+---------------------------------------------------------+
| FROM_UNIXTIME(875996580) |
+---------------------------------------------------------+
| 1997-10-04 22:23:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
HOUR (waktu)
Mengembalikan jam untuk waktu. Rentang nilai hasil adalah 0 hingga 23 untuk nilai waktu-hari. Namun, kisaran nilai TIME sebenarnya jauh lebih besar, sehingga HOUR dapat mengembalikan nilai yang lebih besar dari 23.
mysql> SELECT HOUR('10:05:03');
+---------------------------------------------------------+
| HOUR('10:05:03') |
+---------------------------------------------------------+
| 10 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
LAST_DAY (tanggal)
Mengambil nilai tanggal atau waktu dan mengembalikan nilai yang sesuai untuk hari terakhir bulan itu. Mengembalikan NULL jika argumen tidak valid.
mysql> SELECT LAST_DAY('2003-02-05');
+---------------------------------------------------------+
| LAST_DAY('2003-02-05') |
+---------------------------------------------------------+
| 2003-02-28 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
LOCALTIME dan LOCALTIME ()
LOCALTIME dan LOCALTIME () adalah sinonim untuk NOW ().
LOCALTIMESTAMP dan LOCALTIMESTAMP ()
LOCALTIMESTAMP dan LOCALTIMESTAMP () adalah sinonim untuk NOW ().
MAKEDATE (year, dayofyear)
Mengembalikan tanggal, nilai tahun dan hari tertentu. Nilai dayofyear harus lebih besar dari 0 atau hasilnya adalah NULL.
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 (jam, menit, detik)
Mengembalikan nilai waktu yang dihitung dari argumen jam, menit, dan detik.
mysql> SELECT MAKETIME(12,15,30);
+---------------------------------------------------------+
| MAKETIME(12,15,30) |
+---------------------------------------------------------+
| '12:15:30' |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MICROSECOND (expr)
Mengembalikan mikrodetik dari ekspresi waktu atau tanggal waktu (expr) sebagai angka dalam rentang dari 0 hingga 999999.
mysql> SELECT MICROSECOND('12:00:00.123456');
+---------------------------------------------------------+
| MICROSECOND('12:00:00.123456') |
+---------------------------------------------------------+
| 123456 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MINUTE (waktu)
Mengembalikan menit untuk waktu, dalam rentang 0 hingga 59.
mysql> SELECT MINUTE('98-02-03 10:05:03');
+---------------------------------------------------------+
| MINUTE('98-02-03 10:05:03') |
+---------------------------------------------------------+
| 5 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MONTH (tanggal)
Mengembalikan bulan untuk tanggal, dalam rentang 0 sampai 12.
mysql> SELECT MONTH('1998-02-03')
+---------------------------------------------------------+
| MONTH('1998-02-03') |
+---------------------------------------------------------+
| 2 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
MONTHNAME (tanggal)
Menampilkan nama lengkap bulan untuk tanggal.
mysql> SELECT MONTHNAME('1998-02-05');
+---------------------------------------------------------+
| MONTHNAME('1998-02-05') |
+---------------------------------------------------------+
| February |
+---------------------------------------------------------+
1 row in set (0.00 sec)
SEKARANG()
Mengembalikan tanggal dan waktu saat ini sebagai nilai dalam format 'YYYY-MM-DD HH: MM: SS' atau YYYYMMDDHHMMSS, bergantung pada apakah fungsi tersebut digunakan dalam konteks string atau numerik. Nilai ini dinyatakan dalam zona waktu saat ini.
mysql> SELECT NOW();
+---------------------------------------------------------+
| NOW() |
+---------------------------------------------------------+
| 1997-12-15 23:50:26 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
PERIOD_ADD (P, N)
Menambahkan N bulan ke periode P (dalam format YYMM atau YYYYMM). Mengembalikan nilai dalam format YYYYMM. Perhatikan bahwa argumen periode P bukanlah nilai tanggal.
mysql> SELECT PERIOD_ADD(9801,2);
+---------------------------------------------------------+
| PERIOD_ADD(9801,2) |
+---------------------------------------------------------+
| 199803 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
PERIOD_DIFF (P1, P2)
Mengembalikan jumlah bulan antara periode P1 dan P2. Periode P1 dan P2 ini harus dalam format YYMM atau YYYYMM. Perhatikan bahwa argumen titik P1 dan P2 bukanlah nilai tanggal.
mysql> SELECT PERIOD_DIFF(9802,199703);
+---------------------------------------------------------+
| PERIOD_DIFF(9802,199703) |
+---------------------------------------------------------+
| 11 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
QUARTER (tanggal)
Mengembalikan kuartal tahun ini untuk tanggal, dalam rentang 1 sampai 4.
mysql> SELECT QUARTER('98-04-01');
+---------------------------------------------------------+
| QUARTER('98-04-01') |
+---------------------------------------------------------+
| 2 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Kedua kalinya)
Mengembalikan detik untuk waktu, dalam rentang 0 hingga 59.
mysql> SELECT SECOND('10:05:03');
+---------------------------------------------------------+
| SECOND('10:05:03') |
+---------------------------------------------------------+
| 3 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
SEC_TO_TIME (detik)
Mengembalikan argumen detik, dikonversi ke jam, menit dan detik, sebagai nilai dalam format 'HH: MM: SS' atau HHMMSS, bergantung pada apakah fungsi tersebut digunakan dalam string atau konteks numerik.
mysql> SELECT SEC_TO_TIME(2378);
+---------------------------------------------------------+
| SEC_TO_TIME(2378) |
+---------------------------------------------------------+
| 00:39:38 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
STR_TO_DATE (str, format)
Ini adalah kebalikan dari fungsi DATE_FORMAT (). Dibutuhkan string str dan format string format. Fungsi STR_TO_DATE () mengembalikan nilai DATETIME jika format string berisi bagian tanggal dan waktu. Jika tidak, ini mengembalikan nilai DATE atau TIME jika string hanya berisi bagian tanggal atau waktu.
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 (tanggal, INTERVAL unit expr) dan SUBDATE (expr, hari)
Saat dipanggil dengan bentuk INTERVAL dari argumen kedua, SUBDATE () adalah sinonim untuk DATE_SUB (). Untuk informasi tentang argumen unit INTERVAL, lihat diskusi untuk DATE_ADD ().
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 (expr1, expr2)
Fungsi SUBTIME () mengembalikan expr1. expr2 dinyatakan sebagai nilai dalam format yang sama seperti expr1. Nilai expr1 adalah ekspresi waktu atau datetime, sedangkan nilai expr2 adalah ekspresi waktu.
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 ()
Mengembalikan tanggal dan waktu saat ini sebagai nilai dalam format 'YYYY-MM-DD HH: MM: SS' atau YYYYMMDDHHMMSS, bergantung pada apakah fungsi tersebut digunakan dalam string atau dalam konteks numerik.
mysql> SELECT SYSDATE();
+---------------------------------------------------------+
| SYSDATE() |
+---------------------------------------------------------+
| 2006-04-12 13:47:44 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIME (expr)
Mengekstrak bagian waktu dari ekspresi waktu atau datetime expr dan mengembalikannya sebagai string.
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 (expr1, expr2)
Fungsi TIMEDIFF () mengembalikan expr1. expr2 dinyatakan sebagai nilai waktu. Nilai expr1 dan expr2 ini adalah ekspresi waktu atau tanggal dan waktu, tetapi keduanya harus berjenis sama.
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 (expr), TIMESTAMP (expr1, expr2)
Dengan satu argumen, fungsi ini mengembalikan ekspresi tanggal atau datetime sebagai nilai datetime. Dengan dua argumen, ini menambahkan ekspresi waktu expr2 ke ekspresi tanggal atau waktuexpr1 dan mengembalikan hasilnya sebagai nilai datetime.
mysql> SELECT TIMESTAMP('2003-12-31');
+---------------------------------------------------------+
| TIMESTAMP('2003-12-31') |
+---------------------------------------------------------+
| 2003-12-31 00:00:00 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
TIMESTAMPADD (unit, interval, datetime_expr)
Fungsi ini menambahkan interval ekspresi integer ke ekspresi tanggal atau waktu datetime_expr. Satuan untuk interval diberikan oleh argumen satuan, yang seharusnya salah satu dari nilai berikut -
- FRAC_SECOND
- KEDUA, MENIT
- JAM, HARI
- WEEK
- MONTH
- QUARTER atau
- YEAR
Nilai unit dapat ditentukan menggunakan salah satu kata kunci seperti yang ditunjukkan atau dengan awalan SQL_TSI_.
Misalnya, DAY dan SQL_TSI_DAY keduanya legal.
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 (unit, datetime_expr1, datetime_expr2)
Mengembalikan perbedaan bilangan bulat antara ekspresi tanggal atau datetime datetime_expr1 dan datetime_expr2. Satuan hasil diberikan oleh argumen satuan. Nilai hukum untuk unit ini sama dengan yang tercantum dalam deskripsi fungsi TIMESTAMPADD ().
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 (waktu, format)
Fungsi ini digunakan seperti fungsi DATE_FORMAT (), tetapi string format mungkin berisi penentu format hanya untuk jam, menit dan detik.
Jika nilai waktu berisi bagian jam yang lebih besar dari 23,%H dan%k penentu format jam menghasilkan nilai yang lebih besar dari rentang biasanya 0 hingga 23. Penentu format jam lainnya menghasilkan nilai jam modulo 12.
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 (waktu)
Mengembalikan argumen waktu yang diubah menjadi detik.
mysql> SELECT TIME_TO_SEC('22:23:00');
+---------------------------------------------------------+
| TIME_TO_SEC('22:23:00') |
+---------------------------------------------------------+
| 80580 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Tanggal hari ini)
Diberikan tanggal, mengembalikan nomor hari (jumlah hari sejak tahun 0).
mysql> SELECT TO_DAYS(950501);
+---------------------------------------------------------+
| TO_DAYS(950501) |
+---------------------------------------------------------+
| 728779 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
UNIX_TIMESTAMP (), UNIX_TIMESTAMP (tanggal)
Jika dipanggil tanpa argumen, fungsi ini mengembalikan stempel waktu Unix (detik sejak '1970-01-01 00:00:00' UTC) sebagai integer tak bertanda. Jika UNIX_TIMESTAMP () dipanggil dengan argumen tanggal, ini mengembalikan nilai argumen sebagai detik sejak '1970-01-01 00:00:00' UTC. tanggal bisa berupa string DATE, string DATETIME, TIMESTAMP, atau angka dalam format YYMMDD atau YYYYMMDD.
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 ()
Mengembalikan tanggal UTC saat ini sebagai nilai dalam format 'YYYY-MM-DD' atau YYYYMMDD, bergantung pada apakah fungsi tersebut digunakan dalam konteks string atau numerik.
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 ()
Mengembalikan waktu UTC saat ini sebagai nilai dalam format 'HH: MM: SS' atau HHMMSS, bergantung pada apakah fungsi tersebut digunakan dalam konteks string atau numerik.
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 ()
Mengembalikan tanggal dan waktu UTC saat ini sebagai nilai dalam 'YYYY-MM-DD HH: MM: SS' atau dalam format YYYYMMDDHHMMSS, bergantung pada apakah fungsi tersebut digunakan dalam string atau dalam konteks numerik.
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 (tanggal [, mode])
Fungsi ini mengembalikan nomor minggu untuk tanggal. Bentuk dua argumen WEEK () memungkinkan Anda untuk menentukan apakah minggu dimulai pada hari Minggu atau hari Senin dan apakah nilai yang dikembalikan harus dalam kisaran dari 0 hingga 53 atau dari 1 hingga 53. Jika argumen mode dihilangkan, nilai variabel sistem default_week_format digunakan
Mode | Hari Pertama dalam seminggu | Jarak | Minggu 1 adalah minggu pertama. |
---|---|---|---|
0 | Minggu | 0-53 | dengan hari Minggu di tahun ini |
1 | Senin | 0-53 | dengan lebih dari 3 hari tahun ini |
2 | Minggu | 1-53 | dengan hari Minggu di tahun ini |
3 | Senin | 1-53 | dengan lebih dari 3 hari tahun ini |
4 | Minggu | 0-53 | dengan lebih dari 3 hari tahun ini |
5 | Senin | 0-53 | dengan hari Senin di tahun ini |
6 | Minggu | 1-53 | dengan lebih dari 3 hari tahun ini |
7 | Senin | 1-53 | dengan hari Senin di tahun ini |
mysql> SELECT WEEK('1998-02-20');
+---------------------------------------------------------+
| WEEK('1998-02-20') |
+---------------------------------------------------------+
| 7 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
WEEKDAY (tanggal)
Mengembalikan indeks hari kerja untuk tanggal (0 = Senin, 1 = Selasa,. 6 = Minggu).
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 (tanggal)
Mengembalikan minggu kalender dari tanggal sebagai angka dalam rentang dari 1 sampai 53. WEEKOFYEAR () adalah fungsi kompatibilitas yang setara dengan WEEK (tanggal, 3).
mysql> SELECT WEEKOFYEAR('1998-02-20');
+---------------------------------------------------------+
| WEEKOFYEAR('1998-02-20') |
+---------------------------------------------------------+
| 8 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
YEAR (tanggal)
Mengembalikan tahun untuk tanggal, dalam rentang 1000 sampai 9999, atau 0 untuk .zero. tanggal.
mysql> SELECT YEAR('98-02-03');
+---------------------------------------------------------+
| YEAR('98-02-03') |
+---------------------------------------------------------+
| 1998 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
YEARWEEK (tanggal), YEARWEEK (tanggal, mode)
Mengembalikan tahun dan minggu untuk tanggal. Argumen mode bekerja persis seperti argumen mode ke fungsi WEEK (). Tahun dalam hasil mungkin berbeda dari tahun dalam argumen tanggal untuk minggu pertama dan minggu terakhir dalam setahun.
mysql> SELECT YEARWEEK('1987-01-01');
+---------------------------------------------------------+
| YEAR('98-02-03')YEARWEEK('1987-01-01') |
+---------------------------------------------------------+
| 198653 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Note - Nomor minggu berbeda dari yang akan dikembalikan oleh fungsi WEEK () (0) untuk argumen opsional 0 atau 1, karena WEEK () lalu mengembalikan minggu dalam konteks tahun tertentu.