将日期时间转换为其他格式

时间:2019-12-05 12:47:18

标签: sql datediff

我正在使用datediff函数,但似乎无法正常工作。只会在数据扩展名中给出空结果。

我目前正在使用什么

DATEDIFF(year, creation_date__c, SYSDATETIMEOFFSET()) AS AnniversaryYears

creation_date__c具有以下格式:2016年12月5日星期一12:00 AM

因此,当在w3schools上在线进行此操作时,它似乎可以工作:

SELECT DATEDIFF(year, PARSE(‘Monday, December 05, 2016 12:00 AM’ AS datetime), SYSDATETIMEOFFSET()) AS DateDiff;

但是,将parse函数与creation_date__c一起使用时,会出现以下错误:检查查询语法时发生错误。错误:参数数据类型datetime对于解析函数的参数1无效。

关于如何解析它或我做错了什么的想法?

1 个答案:

答案 0 :(得分:1)

我相信您正在尝试将日期时间解析为日期时间,请参阅下面的修复程序。在SSMS中,我从两个语句中得到相同的输出。要使用PARSE(变量为DATETIME),您需要具有一个可以转换为DATETIME的类型的变量。

DECLARE @creation_date__c  VARCHAR(MAX) = 'Monday, December 05, 2016 12:00 AM' ; 

SELECT DATEDIFF(year, PARSE(@creation_date__c as datetime), SYSDATETIMEOFFSET()) AS 
DateDiff