嗨我正在尝试更新由于白色空格而遇到错误的日期组成的表格日期字段被传递程序员给出了varchar类型我希望将我的日期转换为此格式mm/dd/yyyy
但是它似乎日期字段充满了这种类型的日期2014年4月8日,问题是我怎么知道更新的日期是这种格式样本2014年4月8日?在将其更新为正确的格式之前,例如mm / dd / yyyy
我试过这个SELECT转换(datetime,date_field,101),但它仍然给出了错误
有什么建议吗?
答案 0 :(得分:0)
SQL Server中的日期和时间数据类型没有任何隐式格式。它们存储在内部表示中。格式化仅在屏幕上或报表等中呈现给用户时应用。要在varchar()
列中存储日期是前一个程序员的错误,您不应该重复。在类型date
(http://msdn.microsoft.com/en-us/library/bb630352.aspx)的表格中添加新列。将值从当前varchar
复制到此新列,然后进行转换。这两个陈述都起作用
select CONVERT(date, 'APRIL 8, 2014')
select CONVERT(date, '04/08/2014')
为了确保这些是唯一的组合,您应该使用正则表达式(在SQL之外)或SUBSTRING()
(在SQL内部)对当前值进行一些分析。
删除旧的varchar
并重命名新的date
列。您可能必须删除并重新创建约束,索引和外键等。
将这些值传递回应用程序时,请将它们保留为日期格式。让用户界面或报告应用程序格式化日期,但需要。