SQL Server日期从字符串值转换

时间:2018-08-21 21:04:10

标签: sql-server datetime type-conversion

在我的表格中,我有一个以字符串表示的日期列,其格式如下:{^2013/05/29}

如何在SQL Server中将其转换为标准datetime格式?其中包含的字符串字符不属于日期时间字符串通常包含的字符。

3 个答案:

答案 0 :(得分:2)

该格式只能由VFP识别为严格格式。是作为文本存储在SQL Server中吗?如果是这样:

Select cast(substring(myColumn, 3, 10) as date) as myDate from myTable;

将进行转换。

如果您的意思是将其存储在VFP表中,并且要转换日期,则:

select ctod(myColumn) as myDate from myTable;

答案 1 :(得分:0)

SELECT CAST(REPLACE('^2018/05/29','^','') AS DATETIME2)

答案 2 :(得分:0)

如果数据始终为{strong> ,格式为{^yyyy/MM/dd},则可以使用:

CONVERT(date,REPLACE(SUBSTRING(YourDateColumn,3,10),'/',''))

但是,理想情况下,您应该将列固定为正确的数据类型:

CREATE TABLE Test (DateColumn varchar(13));
INSERT INTO Test VALUES ('{^2013/05/29}');
GO

SELECT *
FROM Test;

UPDATE Test
SET DateColumn = CONVERT(date,REPLACE(SUBSTRING(DateColumn,3,10),'/',''));

SELECT *
FROM Test;

ALTER TABLE test ALTER COLUMN DateColumn date;

SELECT *
FROM Test;
GO

DROP TABLE Test;