[英]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.