我有两个变量,一个是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数据类型转换为日期时间数据类型会导致超出范围的值。
如何在没有错误的情况下进行转换?我在stackoverflow上看到了几个示例,但未能获得解决方案,需要有关此问题的帮助。
如有任何疑问,请提前致谢
答案 0 :(得分:1)
确定时间。是1.60AM
declare @startdate as varchar(50)= '01/01/2013 1:00 AM'
declare @enddate as varchar(50)= '01/01/2014 1:00 AM'
declare @startdTime datetime
set @startdTime =cast(@startdate as datetime)
print @startdTime
答案 1 :(得分:1)
输入字符串凌晨1:60 到凌晨1:06
的问题declare @startdate as varchar(20)= '1/1/2013 1:06AM'
declare @enddate as varchar(20)= '1/1/2014 1:06AM'
declare @startdTime datetime
SELECT CONVERT( VARCHAR(20), @startdate ,101)
SELECT CAST(CONVERT( VARCHAR(30), @startdate ,101) AS DATETIME)
答案 2 :(得分:0)
此处'1/1/2013 01:60 AM'
超过10个字符。将其增加到20或更多
喜欢
@startdate AS VARCHAR(25)
@enddate AS VARCHAR(25)
N:B:
There is nothing like '1:60 AM',Make it "2:00 AM" or "1:06 AM"
答案 3 :(得分:0)
MS SQL的不同类型的日期时间格式