sql-server - SQL 声明日期时间 - 1001-01-01

标签 sql-server datetime

我正在尝试声明一个值为 1001-01-01 00:00:00.000

的日期时间变量

我尝试了以下方法,但没有成功

declare @d1 datetime = '1001-01-01';
declare @d2 datetime = 10010101;
declare @d3 datetime = '1001-01-01 00:00:00';
declare @d4 datetime = cast ('1001-01-01' as datetime)

我收到以下错误

Msg 242, Level 16, State 3, Line 1
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Msg 8115, Level 16, State 2, Line 2
Arithmetic overflow error converting expression to data type datetime.
Msg 242, Level 16, State 3, Line 3
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Msg 242, Level 16, State 3, Line 4
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

是否可以声明一个可以保存值1001-01-01 00:00:00.000datetime变量?

最佳答案

DateTime 数据类型的最小有效日期是 1753 年 1 月 1 日。

尝试DATETIME2 ,使用:

DECLARE @d4 DATETIME2 = '1001-01-01'

DATETIME2 的最小有效日期为 0001-01-01

关于sql-server - SQL 声明日期时间 - 1001-01-01,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15528553/

相关文章:

python - 如何确定过去的时区特定日期是否在 python 中是夏令时?

sql - 在oracle SQL中删除超过24小时的记录

sql-server - 在 Azure 上添加新的链接服务时,为什么会收到错误 22300?

c# - RFC-1123 的日期时间给出了不准确的时区

c# - 为什么 DateTime.MinValue 不能在 UTC 之前的时区中序列化?

sql - MS SQL 按状态获取聚合日期时间差异

php - 在 php 上发布反向时间

sql - sql中不存在如何使用

sql - 从字符串转换日期和/或时间时转换失败

c# - 为什么要设置命令对象参数的大小参数呢?