Di SQL Server, Anda dapat menggunakan ISDATE()
berfungsi untuk memeriksa apakah suatu nilai adalah tanggal yang valid.
Untuk lebih spesifik, fungsi ini hanya memeriksa apakah nilainya adalah tanggal yang valid , waktu , atau waktu kencan nilai, tetapi bukan datetime2 nilai. Jika Anda memberikan datetime2 nilai, ISDATE()
akan memberi tahu Anda bahwa ini bukan tanggal (itu akan mengembalikan 0
).
Artikel ini berisi contoh fungsi ini.
Sintaks
Pertama, inilah sintaksnya:
ISDATE ( expression )
Dimana expression
adalah ekspresi yang akan diuji.
Contoh 1 – Tanggal Valid
Berikut ini contoh penggunaan ekspresi yang valid:
SELECT ISDATE('2000-01-01') AS Result;
Hasil:
+----------+ | Result | |----------| | 1 | +----------+
Ini mengembalikan 1
, yang berarti ini adalah tanggal yang valid , waktu , atau waktu kencan nilai.
Contoh 2 – Tanggal Tidak Valid
Berikut ini contoh dengan ekspresi yang tidak valid:
SELECT ISDATE('2000-01-01 00:00:00.0000000') AS Result;
Hasil:
+----------+ | Result | |----------| | 0 | +----------+
Ini mengembalikan 0
, yang berarti ini bukan tanggal yang valid , waktu , atau waktu kencan nilai.
Contoh 3 – Menggunakan Nilai Kembali
Anda dapat menggunakan pernyataan bersyarat untuk memanfaatkan nilai kembalian (daripada hanya menampilkan 0
atau 1
).
Berikut adalah contoh dasar di mana kami hanya mencetak Tanggal Valid atau Tanggal Tidak Valid , tergantung pada apakah nilai yang dikembalikan adalah 1
atau 0
:
IF ISDATE('2000-01-01') = 1 PRINT 'Valid Date' ELSE PRINT 'Invalid Date';
Hasil:
Valid Date
Contoh 4 – Setelan BAHASA Anda
Nilai kembalian ISDATE()
tergantung pada LANGUAGE
Anda dan DATEFORMAT
pengaturan.
Berikut adalah contoh untuk menunjukkan bagaimana nilai yang sama dapat mengembalikan hasil yang berbeda bergantung pada LANGUAGE
pengaturan yang digunakan.
Inggris
SET LANGUAGE British; SELECT ISDATE('20/01/2000') AS '20/01/2000 in British';
Hasil:
Changed language setting to British. +-------------------------+ | 20/01/2000 in British | |-------------------------| | 1 | +-------------------------+
us_english
SET LANGUAGE us_english; SELECT ISDATE('20/01/2000') AS '20/01/2000 in us_english';
Hasil:
Changed language setting to us_english. +----------------------------+ | 20/01/2000 in us_english | |----------------------------| | 0 | +----------------------------+
Ini terjadi karena British
menggunakan dd/MM/yyyy format while us_english
menggunakan MM/hh/tttt .
Contoh 5 – Pengaturan DATEFORMAT Anda
Seperti disebutkan, nilai kembalian ISDATE()
juga tergantung pada DATEFORMAT
. Anda pengaturan.
Berikut adalah contoh untuk menunjukkan bagaimana nilai yang sama dapat mengembalikan hasil yang berbeda bergantung pada DATEFORMAT
pengaturan yang digunakan.
dmy
SET DATEFORMAT dmy; SELECT ISDATE('20/01/2000') AS '20/01/2000 while DATEFORMAT is dmy';
Hasil:
+--------------------------------------+ | 20/01/2000 while DATEFORMAT is dmy | |--------------------------------------| | 1 | +--------------------------------------+
mdy
SET DATEFORMAT mdy; SELECT ISDATE('20/01/2000') AS '20/01/2000 while DATEFORMAT is mdy';
Hasil:
+--------------------------------------+ | 20/01/2000 while DATEFORMAT is mdy | |--------------------------------------| | 0 | +--------------------------------------+