如何将日期重新更新为其他格式?

时间:2012-04-19 05:34:41

标签: sql sql-server date format

我有一个列存储日期值的列。但是,有些日期是如何以错误的格式填充的。列的日期格式为DD/MM/YYYY,但日期填充为MM/DD/YYYY。如何将值从MM/DD/YYYY更改为DD/MM/YYYY?例如。目前,它显示为03/05/2012,并且显示为3rd May 2012,因此它确实应该填充为05/03/20125th 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,仍然无法翻转它。

3 个答案:

答案 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