我的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的消息 从字符串转换日期和/或时间时转换失败。
答案 0 :(得分:1)
修复您的数据!不要将日期存储为字符串。
无论如何,您都需要使用内置的日期/时间功能进行比较。那应该是:
SELECT Computer, AppFileDisplayName FROM DHAppReliability
WHERE HasCrashesDaily = 'TRUE' AND
CONVERT(date, TimeGenerated, 101) <= DATEADD(DAY, -7, @date)
ORDER BY Computer
我不确定100%的格式101
是正确的格式,因为您尚未提供示例数据。