SQL日期天数的差异

时间:2018-05-10 10:41:38

标签: mysql sql

我尝试在 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) 获得相同的格式,但我不知道如何更改为日期格式。

注意:我无法在我工作的环境中创建任何变量。

3 个答案:

答案 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)