-1

我有一列存储日期值。但是,有些日期是如何以错误的格式填充的。该列的日期格式为DD/MM/YYYY,但日期填充为MM/DD/YYYY。如何将值从 更改MM/DD/YYYYDD/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”?我试过“select convert(varchar(50), convert(datetime, log_date, 103), 121)”,同时使用了 101 和 103,但仍然无法翻转它。

4

3 回答 3

0

我不知道日期是如何进入您的专栏的。但是 convert 函数在这里可能会有所帮助:

SELECT convert(datetime, '03/05/2012',103)

您可以查看这篇 msdn 文章了解不同的日期和时间样式:http: //msdn.microsoft.com/de-de/library/ms187928.aspx

希望这可以帮助。

顺便说一句:如果问题只是它如何存储在表格本身中,你应该看看你的文化设置。在这里您可以找到不同 sys 语言的日期格式:

select * from sys.syslanguages
于 2012-04-19T05:48:07.007 回答
0

您可以使用该convert函数在字符串和日期时间值之间进行转换。

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。

于 2012-04-19T05:53:32.203 回答
0

日期存储为时间点,而不是特殊样式。如何返回给您可能取决于您的数据库的语言/文化设置。

我认为您可以使用 SELECT CONVERT (...) 来获得您想要的任何格式。以下是一些示例:http ://www.sql-server-helper.com/tips/date-formats.aspx

于 2012-04-19T05:55:05.827 回答