【发布时间】:2014-11-13 16:21:00
【问题描述】:
我有两个变量,一个是varchar,另一个是datetime。我需要将varchar 转换为datetime
declare @startdate as varchar(10)= '1/1/2013 1:60AM'
declare @enddate as varchar(10)= '1/1/2014 1:60AM'
declare @startdTime datetime
set @ startdTime =cast(@startdate as datetime)
然而,这种转换会导致错误:
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
如何正确转换?我在stackoverflow 上看到了几个示例,但未能获得解决方案,需要有关此问题的帮助。
如果有任何疑问请询问,提前谢谢
【问题讨论】:
-
首先你认为 varchar(10) 是否正确保存 15 长度的字符串?
-
almas shaikh 感谢您的回复,而不是 varchar(10) 我使用 varchar(max) 但得到同样的错误。
-
如果您从一开始就将
@startdate和@enddate声明为DATE,您甚至不需要转换任何内容.....请:始终使用最合适的数据类型!如果您正在处理日期 - 使用DATE(而不是VARCHAR(10))
标签: sql sql-server tsql