【发布时间】:2020-06-11 15:44:06
【问题描述】:
我需要返回过去 30 天内的总和。我的日期字段是一个文本字段。我的桌子看起来像这样:
Client Serial# Hrs MyDate
A 1 12 20200501
A 1 8 20200513
B 5 2 20200521
B 6 3 20200522
A 2 5 20200528
A 2 2 20200529
我的代码如下所示:
SELECT Client, Serial#, SUM(Hrs)
FROM MyTable
WHERE CONVERT(DATETIME, MyDate, 112) > DATEADD(day, -30, getdate())
GROUP BY Client, Serial#
这是我得到的错误 “将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。”
我尝试删除转换功能并得到另一个错误: “将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。”
所以现在我被困住了。提前感谢您的帮助
【问题讨论】:
-
"我的日期字段是一个文本字段。" -- 这就是麻烦开始的地方...使用适当的日期/时间类型,而不是字符串类型。
-
我希望我的公司也以这种方式存储他们的信息
标签: sql sql-server