从varchar数据类型到datetime数据类型的转换产生一个超出该范围的值

在使用公司的办公软件时,总是出现这个提示,导致我无法正常使用,无法办公了,求大神帮忙解决

提示很明显是在varchar类型转到datetime类型时出错,这个时间是你选择的还是输入的?
根据经验有可能是日期超出了范围。比如2月只有28天,要转换的varchar是'2015-02-30'这样的情况。或者出现'2015-04-31'类似的范围超出追问

软件里的时间是不需要我来设置的,而且同一款软件同事电脑都用的很正常,只有我的电脑不行,很郁闷

追答

关于日期的转换错误常见问题有三种。
第一种是试图转换不存在的日期。按照你说的情况是不存在的。
第二种是日期格式错误但是程序又没有格式化处理日期。比如本地使用长日期‘2015-03-05’ 程序转换使用‘25/03/05’类似问题。提示应该是转换失败。
第三种是本地日期和服务器时间没有同步,通常会导致查询不到数据。
你可以试一下把日期格式改成和同事相同,然后同步下时间。如果还不可以,那就不清楚为什么了。最彻底也是最无奈最万能的办法就是重装操作系统试试

温馨提示:内容为网友见解,仅供参考
第1个回答  2022-12-19

应该是varchar里面的时间范围超出了datetime类型的范围,建议使用datetime2,。

背景知识

SQL Server 2008除了DateTime和SmallDateTime之外,又新增了四种时间类型,分别为:date,time,datetime2和datetimeoffset。

    各时间类型范围、精度一览表:

数据类型 时间范围 精度

datetime 1753-01-01到9999-12-31 00:00:00 到 23:59:59.997 3.33毫秒

smalldatetime 1900-01-01 到 2079-06-06 00:00:00 到 23:59:59 分钟

date 0001-01-01 到 9999-12-31 天

time 00:00:00.0000000 到 23:59:59.9999999 100 纳秒

datetime2 0001-01-01 到 9999-12-31 00:00:00 到 23:59:59.9999999 100 纳秒

datetimeoffset 0001-01-01 到 9999-12-31 00:00:00 到 23:59:59.9999999 -14:00 到 +14:00 100 纳秒

各时间类型表达式一览表:

    数据类型 输出

time 12:35:29. 1234567

date 2007-05-08

smalldatetime 2007-05-08 12:35:00

datetime 2007-05-08 12:35:29.123

datetime2 2007-05-08 12:35:29. 1234567

datetimeoffset 2007-05-08
12:35:29.1234567 +12:15

相似回答