当前位置: 代码迷 >> Sql Server >> 格式为【日/月/年】,用isdate() 为什么结果是0?该如何处理
  详细解决方案

格式为【日/月/年】,用isdate() 为什么结果是0?该如何处理

热度:556   发布时间:2016-04-27 12:40:37.0
格式为【日/月/年】,用isdate() 为什么结果是0?
如题:为什么【日/月/年】的结果为0,【年/月/日】的结果为1?

SQL code
select ISDATE('17/5/2012'),ISDATE('2012/5/17')


------解决方案--------------------
SQL Server支持的日期时间格式
SQL code
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AMSelect CONVERT(varchar(100), GETDATE(), 10): 05-16-06Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16Select CONVERT(varchar(100), GETDATE(), 12): 060516Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AMSelect CONVERT(varchar(100), GETDATE(), 23): 2006-05-16Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 101): 05/16/2006Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AMSelect CONVERT(varchar(100), GETDATE(), 110): 05-16-2006Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16Select CONVERT(varchar(100), GETDATE(), 112): 20060516Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AMSelect CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
------解决方案--------------------
select ISDATE(CONVERT(datetime,'17/5/2012',103)),ISDATE('2012/5/17')
------解决方案--------------------
SQL中可能没有这种格式写法【日/月/年】.
select isdate('5/12/2012') 1
select ISDATE('2012/5/17') 1


IsDate 函数

返回 Boolean 值指明某表达式是否可以转换为日期。

IsDate(expression)

expression 参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式。
说明

如果表达式是日期或可合法地转化为有效日期,则 IsDate 函数返回 True;否则函数返回 False。在 Microsoft Windows 操作系统中,有效的日期范围公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日;合法的日期范围随操作系统不同而不同。

下面的示例利用 IsDate 函数决定表达式是否能转换为日期型:

Dim MyDate, YourDate, NoDate, MyCheck
MyDate = "October 19, 1962": YourDate = #10/09/12#: NoDate = "Hello"
MyCheck = IsDate(MyDate) ' 返回 True。
MyCheck = IsDate(YourDate) ' 返回 True。
MyCheck = IsDate(NoDate) ' 返回 False。

新手学习中。。。
------解决方案--------------------
'17/5/2012'--这个如果是日期的话格式是dd/mm/yy
  相关解决方案