Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

ISDATE() Contoh di SQL Server

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                                    |
+--------------------------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konversi 'datetime2' menjadi 'date' di SQL Server (Contoh T-SQL)

  2. Memperkenalkan Fitur Baru - Analisis Deadlock

  3. Bagaimana cara menggunakan SqlCommand untuk MENCIPTAKAN DATABASE dengan nama db berparameter?

  4. Nilai yang Dipisahkan Koma dengan SQL Query

  5. Apa yang dimaksud dengan ORDER BY (SELECT NULL)?