小编Mau*_*408的帖子

SQL Server 2012 ISDATE()

MS文件说明了这一点 ISDATE()

如果表达式是有效的日期,时间日期时间值,则返回1 ; 否则,0

那么为什么它会0在下面的例子中返回?

DECLARE @DT VARCHAR(30) = '1/4/1752'

SELECT 
    ISDATE(@DT),
    TRY_CONVERT(DATE, @DT, 101),
    TRY_CONVERT(DATETIME, @DT),
    TRY_CAST(@DT as DATE),  
    TRY_CAST(@DT AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

回报

0   1752-01-04  NULL    1752-01-04  NULL
Run Code Online (Sandbox Code Playgroud)

将日期更改为1753和...

1   1753-01-04  1753-01-04 00:00:00.000 1753-01-04  1753-01-04 00:00:00.000

select ISDATE('17521231'), ISDATE('17530101') gives

0   1
Run Code Online (Sandbox Code Playgroud)

sql sql-server

12
推荐指数
1
解决办法
409
查看次数

标签 统计

sql ×1

sql-server ×1