sql - 当日期范围更改为从 01-01-0001 开始时,不会加载 DimDate
问题描述
之前的问题已经解决了,谢谢。但是,我仍然对以下内容有疑问(之前的一部分)。由于 DATETIME 不支持“0001-01-01”,如何将结果转换为 DATE 数据类型?我已经尝试过 DATETIME2 但不起作用,并且 StartDate 需要为“0001-01-01”。任何帮助都会受到高度评价。
声明 @CurrentDate 日期 = '0001-01-01'
SELECT DATEADD(QQ, DATEDIFF(QQ, 0, @CurrentDate), 0) 作为 FirstDayOfQuarter, DATEADD(QQ, DATEDIFF(QQ, -1, @CurrentDate), -1) 作为 LastDayOfQuarter, CONVERT(VARCHAR(10), DATEADD( WEEK, DATEDIFF(WEEK, 0, DATEADD(DAY, (6- DATEPART(DAY, @CurrentDate)), @CurrentDate)),0),120) AS FirstMondayOftheMonth
错误信息:
将日期数据类型转换为日期时间数据类型导致值超出范围。
解决方案
Datetime 数据类型的范围是从 1753 年 1 月 1 日到 9999 年 12 月 31 日。
此处的错误表明您超出了下限或下限。
如果您必须从 0001 存储该值,请改用 Varchar。
在我见过的许多实时项目中,它通常从 1900-01-01 开始,人们将其作为默认的最小日期
推荐阅读
- python - 基于 GPIO 输入和时间的 Python rpi GPIO 输出控制
- openoffice-calc - OpenOffice Calc 使用许多 cels 将二进制代码转换为十进制
- android - 单元测试 ViewModel 类
- mongodb - Create array if not exists or append item to existing
- python - 展平平铺阵列
- javafx - 如何在 ChartViewer 中禁用缩放
- docker - 除非我停止任何本地 SQL Server 实例,否则 Docker、MS SQL Server、SMMS 无法连接
- python - 字典类型错误:“int”对象不可调用
- reactjs - 扩展 React 组件以添加自定义字段?
- android - JetPack 导航 - 中缺少“图形”属性
标签