การตรวจสอบว่านิพจน์เป็นวันที่หรือไม่

ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

Ana Voicu

Data Engineer

ISDATE(expression)

  • ตรวจสอบว่านิพจน์เป็นชนิดข้อมูลวันที่ที่ถูกต้องหรือไม่
นิพจน์ของ ISDATE() ชนิดที่คืนค่า
date, time, datetime 1
datetime2 0
ชนิดอื่น 0
ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

ISDATE(expression)

DECLARE @date1 NVARCHAR(20) = '2019-05-05'
DECLARE @date2 NVARCHAR(20) = '2019-01-XX'
DECLARE @date3 CHAR(20) = '2019-05-05 12:45:59.9999999'
DECLARE @date4 CHAR(20) = '2019-05-05 12:45:59'

SELECT
    ISDATE(@date1) AS valid_date,
    ISDATE(@date2) AS invalid_date,
    ISDATE(@date3) AS valid_datetime2,
    ISDATE(@date4) AS valid_datetime;

| valid_date | invalid_date |valid_datetime2 | valid_datetime |
|------------|--------------|----------------|----------------|
| 1          | 0            | 0              | 1              |
ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

SET DATEFORMAT

SET DATEFORMAT {format}

  • กำหนดลำดับของส่วนวันที่สำหรับการแปลสตริงเป็นวันที่

  • รูปแบบที่ใช้ได้:

    • mdy, dmy, ymd, ydm, myd, dym
ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

SET DATEFORMAT

DECLARE @date1 NVARCHAR(20) = '12-30-2019'
DECLARE @date2 NVARCHAR(20) = '30-12-2019'

SET DATEFORMAT dmy;
SELECT
    ISDATE(@date1) AS invalid_dmy,
    ISDATE(@date2) AS valid_dmy;
|invalid_dmy| valid_dmy |
|-----------|-----------|
| 0         | 1         |
ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

SET LANGUAGE

SET LANGUAGE {language}

  • กำหนดภาษาสำหรับ session
  • กำหนดค่า SET DATEFORMAT โดยปริยาย
  • ภาษาที่ใช้ได้: English, Italian, Spanish ฯลฯ
ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

SET LANGUAGE

SET LANGUAGE English;
SELECT
    ISDATE('12-30-2019') AS mdy,
    ISDATE('30-12-2019') AS dmy;
| mdy | dmy |
|-----|-----|
| 1   | 0   |
ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

SET LANGUAGE

SET LANGUAGE French;
SELECT
    ISDATE('12-30-2019') AS mdy,
    ISDATE('30-12-2019') AS dmy;
| mdy | dmy |
|-----|-----|
| 0   | 1   |
ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

มาฝึกกันเถอะ!

ฟังก์ชันสำหรับจัดการข้อมูลใน SQL Server

Preparing Video For Download...