【发布时间】:2019-12-02 16:54:31
【问题描述】:
我有一个大整数日期列,不接受空值。列中值的日期格式是 20190101。我需要一个告诉我年份和季度的查询。谷歌搜索后,我发现了一个有效的查询。今天它不起作用。我在查询中收到此错误“从字符串转换日期和/或时间时转换失败”。我跟踪了表格的原因,在某些行上允许 -1。如何在我的查询中允许这样做?我想我必须把它转换成一个角色才能拉出宿舍。我使用演员表做到了这一点。我更改为日期时间,它说指定的比例无效。
这是我的查询:
Select Distinct left(DateKey,4) as Year,
DatePart(QUARTER,cast(cast(DateKey as char(8)) as date)) As Quarter
From WorkersUnitePerformanceFact
Order By Year, Quarter
选择中的两个项目都收到错误。
【问题讨论】:
-
如果您运行
CAST(GETDATE() AS char(8)),您会很快看到为什么会出现错误:DB<>Fiddle -
如何将您的日期存储在 DATE/DATETIME 等类型的列中?将它们存储在整数中并希望它们始终可以转换为日期是自找麻烦
标签: sql sql-server