Sunday, 14 June 2020

[SQL Server] Simple ISDATE Test

[SQL Server] Simple ISDATE Test

ISDATE System function returns 1(true) when the expression is a valid date(datetime) type.

Script

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
SELECT ISDATE('20190101') AS '1', 
       ISDATE('2019/01/01') AS '2', 
       ISDATE('2019-01-01') AS '3', 
       ISDATE('19-01-01') AS '4', 
       ISDATE('2019-04-31') AS '5', 
       ISDATE(NULL) AS '6', 
       ISDATE('201l-12-31') AS '7', 
       ISDATE('123') AS '8', 
       ISDATE('2019-01-01 15:55:59.455') AS '9', 
       ISDATE('2019-01-01 15:55:59.4551') AS '10', 
       ISDATE('1752-12-31') AS '11', 
       ISDATE('1753-01-01') AS '12', 
       ISDATE('2999-01-01') AS '13', 
       ISDATE('9999-12-31') AS '14', 
       ISDATE('01/2019/12') AS '15';

Result



Description
  1. Standard ISO Type. Returns "1".
  2. Standard JAPAN type. Returns "1"
  3. Standard ISO8601 (Also ODBC canonical) type. Returns "1"
  4. Cannot recognize "19" as YEAR. Returns "0"
  5. April 31st does not exist. Returns "0"
  6. NULL does not regard as a date type. Returns "0"
  7. There's "l", not "1". Returns "0"
  8. It's a numeric type. Returns "0"
  9. Standard ODBC canonical (with milliseconds) type. Returns "1"
  10. Look like Standard ODBC canonical (with milliseconds) type. But it's not because of the additional "1". Returns "0"
  11. This is because SQL Server Date type uses the Gregorian calendar and originally from Sysbase Database. SQL Server cannot recognize the date before 1753. Returns "0"
  12. From January 1st, 1753, there's no problem to recognize to a date type. Returns "1"
  13. Standard ISO8601 type. Returns "1"
  14. Standard ISO8601 type. Returns "1"
  15. Recognizes as January 12th, 2019. Returns "1"

Reference

No comments:

Post a Comment

(KOR) AI와 지속 가능한 엔지니어링 — 생성은 빠르게, 검증은 철저하게

영어 원문 : https://www.linkedin.com/pulse/ai-sustainable-engineering-generate-fast-verify-thoroughly-yoon-hclqf/ [공지 / 면책 조항] 이 글에 표현된 모든 견해는 전...