我刚刚意识到在将800万条记录导入数据库后(很长一段时间!),遗憾的是有些日期是混合的(英国和美国格式,不太好!)
即
26/03/2015 22/12/2014 2012年10月8日 11/17/2011 11/30/2010
不仅如此,数据库的列是varchar,这对性能也不利。
我已经建立了一个测试数据库,我尝试了这个失败:
SELECT convert(varchar, getdate(), 103)
我试图获得英国的日期,即25/11/1992而不是11/25/1992
任何帮助都会很棒,否则会浪费一夜上传数据!
答案 0 :(得分:0)
您示例中选择的正确方法如下:
select CONVERT(VARCHAR(10),GETDATE(),103)
但我想到了两个解决方案 使函数采用美国日期的varchar并返回英国日期的varchar 但是你不知道如果在表中所有的日期都是美国类型的大问题,如果你可以想到你刚刚解决问题的日期是什么类型的日期,你可以把这个规则放在函数上通过一些有助于想一想。
您也不需要再次导入所有数据,在完成上述操作后,只需使用该函数创建当前表的更新语句。
祝你好运。