在SQL中将varchar转换为日期类型

时间:2016-11-21 09:09:42

标签: sql sql-server date

我正在尝试将格式为varchar的{​​{1}}字段转换为SQL SERVER 2008中的日期类型字段。

我使用dd.mm.yyyy这样的方法,但不能这样做。

有没有办法在SQL中将格式为convert(datetime, left(yourDateField, 2) + '01 20' + right(yourDateField, 4), 100)的{​​{1}}字符串转换为Varchar

4 个答案:

答案 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)

Refer this link

答案 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)

希望如此,你得到我想说的话。