我尝试在 issue.date 和今天之间的天数中获得结果。我的SQL给我格式 dd.mm.YYYY作为int [11] 并将其转换为 varchar [11] ,因为第一种格式在导出到csv时从零开始计算时间或xls。
所以,我的问题是如何将int / varchar更改为日期格式以计算该日期与今天之间的差异。今天的日期是日期时间格式。
以下用于转换
CONVERT (VARCHAR(11),DATEADD(day,issue_date,'1971/12/31'),106) AS IssueDate
格式为 dd mm YYYY 。
我使用CONVERT(VARCHAR(11), GETDATE(), 106)
获得相同的格式,但我不知道如何更改为日期格式。
注意:我无法在我工作的环境中创建任何变量。
答案 0 :(得分:1)
你的问题并不完全有意义。您应该使用原生格式存储日期/时间,而不是字符串。不是数字。期。这是存储日期/时间值的正确方法。然后在正确的类型上使用日期/时间函数(例如datediff()
)。
当你这样做时,你可以使用datediff(day, issue_date, getdate())
。
如果由于某种原因您的日期格式为DD.MM.YYYY,则可以使用convert(date, ddmmyy, 104)
。支持的类型位于documentation。
答案 1 :(得分:1)
DATEDIFF()
函数用于查找两个日期之间的差异。 DATEDIFF()
有三个参数,如下所示:
1: - DATAPART(DAY,HOURS,MONTH,YEARS,SECONDS等)
2: - 开始日期
3: - 结束日期
示例:
SELECT DATEDIFF(DAY , '2017-12-10',GETDATE()) // Result should be 151
答案 2 :(得分:0)
答案很简单:
Distinct
和
CONVERT (date,DATEADD(day,wo_header.issue_date,'1971/12/31'),106)
然后CONVERT(date, GETDATE(), 106)