在我的表格中,我有一个以字符串表示的日期列,其格式如下:{^2013/05/29}
。
如何在SQL Server中将其转换为标准datetime
格式?其中包含的字符串字符不属于日期时间字符串通常包含的字符。
答案 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;