字段<当前日期-7种格式的日期

时间:2019-07-11 15:31:25

标签: sql sql-server

我的datetime字段的日期格式为M / dd / yyyy。 SQL Server日期的日期格式为yyyy-mm-dd。 我需要获取当前日期-7天并格式化输出

示例。

SELECT * FROM [Table]
WHERE Time Generated >= current date - 7 days 

当前日期的输出-7应该是M / dd / yyyy

SELECT FORMAT(Getdate(), 'MM dd, yyyy')

DECLARE @date varchar(30) = FORMAT(getdate(), 'M/dd/yyyy');  
SELECT Computer, AppFileDisplayName FROM DHAppReliability
WHERE HasCrashesDaily = 'TRUE'
AND TimeGenerated <= DATEADD(DAY, -7, @date)
ORDER BY Computer
  

第241级状态1线2的消息   从字符串转换日期和/或时间时转换失败。

1 个答案:

答案 0 :(得分:1)

修复您的数据!不要将日期存储为字符串。

无论如何,您都需要使用内置的日期/时间功能进行比较。那应该是:

SELECT Computer, AppFileDisplayName FROM DHAppReliability
WHERE HasCrashesDaily = 'TRUE' AND
      CONVERT(date, TimeGenerated, 101) <= DATEADD(DAY, -7, @date)
ORDER BY Computer

我不确定100%的格式101是正确的格式,因为您尚未提供示例数据。