2

我需要检查一个值是否是一个日期,但是ISDATE()当遇到一个值时,函数会返回 0,例如2012-07-21 00:00:00+02:00由于偏移量。我的问题是我不能简单地转换值,实际上ISDATE()是为了在查询中使用来检查值是否是转换前的日期(参见下面的示例)。

SELECT p.propertyid 
FROM   property p 
WHERE  CASE Isdate(p.[value]) 
         WHEN 1 THEN 
           CASE 
             WHEN Cast(p.[value] AS DATETIME) >= Cast('7/1/2012' AS DATETIME) 
           THEN 1 
             ELSE 0 
           END 
         ELSE 0 
       END = 1 

所以我想知道如何检查p.[value]示例中的是否是日期。

4

1 回答 1

-2

SQL Server 2012 让这一切变得简单。

select p.propertyid from Property p 
where try_convert(datetyime,p.[enddate])  is not null
于 2012-07-09T13:53:18.910 回答