如何将包含日期的 varchar 字段类型转换为正确的日期格式
Posted
技术标签:
【中文标题】如何将包含日期的 varchar 字段类型转换为正确的日期格式【英文标题】:How to convert a varchar field type containing date to a proper date format [duplicate] 【发布时间】:2016-05-02 07:15:02 【问题描述】:我有一个包含日期值的 varchar 字段,例如:
02042015
如何将其转换为应返回值的日期格式:
2 Apr 2015
【问题讨论】:
你试过什么?您需要做的第一件事是确认数据库中的每条记录都遵循这种格式。 @Nick.McDermaid 是的,数据库中的所有记录都包含相同的格式... Date have no display format. 如果你需要一个显示格式,你想把一个字符串转换成另一个字符串。 @Nick.McDermaid Actuallt 我还没有尝试过任何东西......这些天我刚开始学习数据库,我对数据库很陌生......尝试优素福在以下答案中提到的脚本 您使用的是什么版本的 sql server? 【参考方案1】:您可以使用CONVERT 和106
格式如下:
declare @date varchar(60) = '02042015'
select convert(varchar(20),cast(right(@date,4) + substring(@date,3,2) + left(@date,2) as datetime), 106)
输出
02 Apr 2015
【讨论】:
【参考方案2】:我想会有一些转换格式,所以你可以放:
select(convert(datetime,'010109',<some magic number>))
并得到结果,但我似乎找不到给出正确日期的结果
你也可以试试这个:
declare @dt varchar(6)
select @dt = '010109'
select convert(datetime,RIGHT(@dt,2) + SUBSTRING(@dt,3,2) + LEFT(@dt,2))
【讨论】:
【参考方案3】:试试这个
DECLARE @V_DATE VARCHAR(20) = '02042015'
SELECT CONVERT(varchar(11),
CONVERT(datetime,RIGHT(@V_DATE,4)+LEFT(@V_DATE,2)+SUBSTRING(@V_DATE,3,2))
,106)
【讨论】:
以上是关于如何将包含日期的 varchar 字段类型转换为正确的日期格式的主要内容,如果未能解决你的问题,请参考以下文章
将日期(varchar)和时间(varchar)转换为日期时间Oracle
如何将 varchar 日期转换为 datetime2 日期
如何在不丢失 Xampp 中的数据的情况下将类型从 varchar 更改为 Date
如何将存储为 VARCHAR 的 UTC 日期时间值转换为常规日期时间
如何在 MySQL 中使用 Case When 和 Str_to Date 将 Varchar 日期值转换为日期数据类型