英国和美国日期的混合 - 全部转换为英国
Mixture of UK and US Dates - Convert All to UK
我刚刚意识到在将 800 万条记录导入数据库后(很长时间!),遗憾的是有些日期是混合的(英国和美国格式,不好!)
即
2015 年 3 月 26 日
22/12/2014
10/08/2012
11/17/2011
11/30/2010
不仅如此,数据库的列也是varchar,对性能也很不利
我做了一个测试数据库,但我试过失败:
SELECT convert(varchar, getdate(), 103)
我正在尝试获取英国日期,即 25/11/1992 而不是 11/25/1992
任何帮助都会很棒,否则上传数据就浪费了一个晚上!
在你的例子中 select 的正确方法是这样的:
select CONVERT(VARCHAR(10),GETDATE(),103)
但我在想两个解决方案
制作一个函数,采用美国日期的 varchar 和英国日期的 return varchar
但最大的问题是你不知道 table 中的所有日期是否都是美国类型,如果你能弄清楚 surly 什么类型的日期你刚刚解决了这个问题,你可以把这个规则关于传递一些有助于计算的参数的函数。
此外,您不需要再次导入所有数据,完成上述操作后,只需使用函数对当前 table 进行更新语句即可。
祝你好运。
我刚刚意识到在将 800 万条记录导入数据库后(很长时间!),遗憾的是有些日期是混合的(英国和美国格式,不好!)
即
2015 年 3 月 26 日 22/12/2014 10/08/2012 11/17/2011 11/30/2010
不仅如此,数据库的列也是varchar,对性能也很不利
我做了一个测试数据库,但我试过失败:
SELECT convert(varchar, getdate(), 103)
我正在尝试获取英国日期,即 25/11/1992 而不是 11/25/1992
任何帮助都会很棒,否则上传数据就浪费了一个晚上!
在你的例子中 select 的正确方法是这样的:
select CONVERT(VARCHAR(10),GETDATE(),103)
但我在想两个解决方案 制作一个函数,采用美国日期的 varchar 和英国日期的 return varchar 但最大的问题是你不知道 table 中的所有日期是否都是美国类型,如果你能弄清楚 surly 什么类型的日期你刚刚解决了这个问题,你可以把这个规则关于传递一些有助于计算的参数的函数。
此外,您不需要再次导入所有数据,完成上述操作后,只需使用函数对当前 table 进行更新语句即可。
祝你好运。