【发布时间】:2019-07-11 15:31:25
【问题描述】:
我的日期时间字段的日期格式为 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,第 16 级,状态 1,第 2 行 从字符串转换日期和/或时间时转换失败。
【问题讨论】:
-
日期没有格式,它们是二进制值。格式仅适用于将字符串解析为日期,或将日期格式化为字符串以供显示。 SSMS 将始终使用 ISO8601 格式,因为它是唯一明确的格式。这并不意味着日期有某种特定的格式
-
“生成”字段是什么数据类型?当您说您的日期格式为 M/dd/yyyy 时,您的意思是它以该格式保存在字符串中,还是 SSMS 显示为这样?
标签: sql sql-server