我正在尝试将格式为varchar
的{{1}}字段转换为SQL SERVER 2008中的日期类型字段。
我使用dd.mm.yyyy
这样的方法,但不能这样做。
有没有办法在SQL中将格式为convert(datetime, left(yourDateField, 2) + '01 20' + right(yourDateField, 4), 100)
的{{1}}字符串转换为Varchar
?
答案 0 :(得分:2)
select convert(date,dateField,104)
from tab
答案 1 :(得分:0)
试试这个。
DECLARE @String VARCHAR(100)= '21.11.2016';
SELECT CONVERT(DATE,@String,103)
答案 2 :(得分:0)
试试这个Datetime to Varchar
SELECT CONVERT(VARCHAR(20),GETDATE(),104)
Varchar to Datetime
SELECT CONVERT(DATETIME,yourfeild,104)
答案 3 :(得分:0)
如果您的日期字段不是正确的日期时间格式,则会发生此类超出范围值错误。
如果您的日期字段采用正确的日期时间格式,那么您可以轻松地将varchar字段转换为日期时间格式。
参见示例:
select CONVERT(datetime,'2016-11-21 01:02:12')
select CONVERT(datetime,'2016-11-31 01:02:12')
select CONVERT(datetime,'2016-11-21 00:00:01 PM')
在上面的示例中,First查询很容易转换为datetime 但是第二次和第三次查询会给出超出范围值的错误。因为11月31日是无效日期。和00:00:00 PM也是错误的日期格式。
如果您的字段格式正确 然后只需尝试以下任何一个查询
DECLARE @String VARCHAR(100)= '21.11.2016';
SELECT CONVERT(DATETIME,@String,104)
SELECT CONVERT(DATETIME,@String,103)
希望如此,你得到我想说的话。