【发布时间】:2019-03-22 07:03:34
【问题描述】:
我需要将getdate() 转换为yyyymmdd 格式。最终我需要回到 3 年并忽略超过 3 年的订单。
我不确定我将GETDATE() 转换为yyyymmdd 是否正确。
这就是我所做的DATEADD(YYYY,-3,CONVERT(VARCHAR(8),GETDATE(),112 ) > D.REQUESDATE
D.REQUESDATE 存储为十进制。我应该先将其转换为字符串还是整数。
运行此查询的路径应该是什么?
错误是
“将表达式转换为数据类型日期时间时出现算术溢出错误。”
SELECT
MYCOLUMNS
,D.[EXPDATE]
FROM MYTABLE
JOIN TABLES
DATEADD(YYYY,-3,CONVERT(VARCHAR(8),GETDATE(),112) > D.REQUESDATE
提前致谢!
【问题讨论】:
-
你有一个语法错误所以把你缺少的
)添加到你的dateadd函数AND DATEADD(YYYY,-3,CONVERT(VARCHAR(8),GETDATE(),112 )) > D.REQUESDATE -
D.REQUESDATE是否存储为yyyymmdd格式的字符串?
-
D.REQUESDATE 它是什么日期数据类型\???
-
在我修复了括号后出现“将表达式转换为数据类型日期时间的算术溢出错误”错误。 D.REQUESDATE 的数据类型是十进制。
-
为什么将日期存储为小数?您将不得不执行一些令人讨厌的转换。您能否分享一些示例数据,以便我们了解我们正在处理的内容?
标签: sql sql-server date datetime type-conversion