繁体   English   中英

如何在SQL中将两种类型的日期格式转换为一种日期格式?

[英]How to convert two types of dates format into one date format in SQL?

我在数据库中有三个表,其中两个包含日期,但是日期有两种格式,第一个是 20-02-2011,第二个是 25/09/2018。 假设每个表有 10000 条记录并混合了这两种类型的日期格式。 这就是为什么我创建这样的列的原因 --- (Transaction_Date, Varchar(10) Not Null)

我试过convert (Varchar(10),Transaction_Date,105)也试过replace(convert(varchar(10),Transaction_Date,105),'/','-')

然而,日期和年份函数仍然不起作用。

请提出一种可能的方法。

这个怎么样?

select replace(date, replace(Transaction_Date, '/', '-'), 105)

即:(1) 转换为日期和 (2)转换之前替换斜线。

你需要记住你的文化。 保存的格式与服务器文化。 但这很有可能

select Cast('2-22-2011' as datetime) f1,
       Cast('2/22/2011' as datetime) f2

我换言之就是使用Cast

select cast(Transaction_Date as datetime) . .  .

但是您应该尽快摆脱将日期保存为字符串的列并创建新的日期/时间列,并在那里插入您的日期值

alter table tbl add column temp datetime
update tbl set temp = Cast(Transaction_Date  as datetime)
alter table tbl drop column Transaction_Date
alter table tbl add column Transaction_Date datetime 
update tbl set Transaction_Date = temp
alter table tbl drop column temp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM