目前SQL表中有一列包含DMMYYYY
的date,列dtype为VARCHAR
,但我想将其转换为日期dtype格式,即DD/MM/YYYY
当前格式:
8012005
9012005
10012005
要求格式:
08/01/2005
09/01/2005
10/01/2005
我的尝试
SELECT [serial]
,[srn]
,[ticker]
,[series]
,[QT]
,[DQ]
,[DQ/QT]
,[TIMESTAMP]
FROM [Indexer].[dbo].[EquityNSEDAT]
SELECT CONVERT(TIMESTAMP, '%D/%m/%y');
2条答案
按热度按时间wz3gfoph1#
真实的的问题是这里的表,你需要修改你的设计。要做到这一点,你需要将你的列的数据类型从(大概)基于字符串的数据类型更改为
date
数据类型。我还假设你有错误的数据,所以将这些错误的数据保留在一个新的列中。你需要在之后检查这些数据并手动修改它。首先,修改你的设计,这会把你的字符串从一个不明确的值修改为一个ISO格式(
yyyyMMdd
),然后修改你的列的数据类型:完成这些操作后,要获得所需的值 displayed,请在您的表示层(而不是SQL层)中进行配置;在SQL层中将数据类型保留为
date
。oug3syen2#
要在SQL查询中将DMMYYYY格式的日期(例如“8012005”)转换为DD/MM/YYYY格式(例如“08/01/2005”),请使用CONVERT()函数和相应的样式参数。
在您的情况下,下面的查询会将TIMESTAMP列从DMMYYYY格式转换为DD/MM/YYYY格式: