【发布时间】:2019-10-29 19:04:40
【问题描述】:
我浏览过类似的帖子,但还没有完全找到我的确切问题。基本上,我刚开始在一家公司工作,该公司现在正在与承包商一起构建数据库。我们的每个日期字段都以 Julian 格式“20190101”存储,但它们被格式化为 Varchar 而不是 DateTime。
这对于在 SQL 中使用与日期相关的函数显然是有问题的。最终,我计划让我们的承包商脚踏实地,并告诉他们改变它。但是根据我的研究,我找不到任何真正的理由来创建数据库而不使用 DateTime 格式的日期而不是懒惰。
是否有任何正当理由将日期时间格式存储为 varchar?其次,如果这是我所坚持的,有人能告诉我我能做些什么来把它变成一种可行的格式吗?我的大部分查询都希望提取前 365 - 730 天的数据。
我目前收到错误消息“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。”在以下代码行:
WHERE Promise_Date > DATEADD(year,-1, GETDATE())
【问题讨论】:
-
您使用的是什么关系型数据库? SQL 服务器?此外,“20190101”不是儒略日期。
-
我们使用的是 SQL Azure