我有一个列存储日期值的列。但是,有些日期是如何以错误的格式填充的。列的日期格式为DD/MM/YYYY
,但日期填充为MM/DD/YYYY
。如何将值从MM/DD/YYYY
更改为DD/MM/YYYY
?例如。目前,它显示为03/05/2012
,并且显示为3rd May 2012
,因此它确实应该填充为05/03/2012
(5th March 2012
)。
以上问题已经解决,但我有一个类似的问题: 如何将“2012-12-01 12:33:00.0”翻转为“2012-01-12 12:33:00.0”?我曾尝试过“选择转换(varchar(50),convert(datetime,log_date,103),121)”并使用了101和103,仍然无法翻转它。
答案 0 :(得分:0)
我不知道日期是如何进入您的专栏的。但转换功能可能会有所帮助:
SELECT convert(datetime, '03/05/2012',103)
您可以查看这篇msdn文章了解不同的日期和时间样式: http://msdn.microsoft.com/de-de/library/ms187928.aspx
希望这有帮助。
btw:如果问题只是它存储在表格中的方式,你应该看看你的文化设置。在这里,您可以找到不同sys语言的日期格式:
select * from sys.syslanguages
答案 1 :(得分:0)
您可以使用convert
function在字符串和日期时间值之间进行转换。
Convert a DD/MM/YYYY string to a datetime: convert(datetime, value, 103)
Convert a datetime to a DD/MM/YYYY string: convert(varchar(10), value, 103)
Convert a MM/DD/YYYY string to a datetime: convert(datetime, value, 101)
Convert a datetime to a MM/DD/YYYY string: convert(varchar(10), value, 101)
您需要哪些这些取决于您是否将日期存储为表格中的varchar或datetime。
答案 2 :(得分:0)
日期存储为某个时间点,但不是特殊样式。如何将其返回给您可能取决于您的数据库的语言/文化设置。
我认为你可以使用SELECT CONVERT(...)来获得你想要的任何格式。以下是一些示例:http://www.sql-server-helper.com/tips/date-formats.aspx