如何在日期时间翻转?

时间:2012-04-19 09:45:24

标签: sql sql-server date

如何将“2012- 12-01 12:33:00.0”翻转为“2012- 01-12 12:33:00.0”?我曾尝试过“选择转换(varchar(50),convert(datetime,log_date,103),121)”并使用了101和103,仍然无法翻转它。

数据库是MS SQL

2 个答案:

答案 0 :(得分:2)

DECLARE @date DATETIME
SET DATEFORMAT ydm
SET @date = '2012-12-01 12:33:00.0'
SELECT @date

SET DATEFORMAT ydm会以您所需的格式提供结果。

其他选项

UPDATE Table_Name
SET COLUMN_NAME= convert(varchar(20), convert(Date, @date, 101)) +  convert(varchar(30),convert(time, @date))
WHERE 

select convert(datetime, convert(varchar(100), @date), 20)

答案 1 :(得分:0)

您可以执行一些字符串操作(注意:未经测试的代码)

UPDATE table
SET date=
  LEFT(CONVERT(VARCHAR(50),date,128),4) -- '2012'
  +SUBSTRING(CONVERT(VARCHAR(50),date,128),7,3) -- '-01'
  +SUBSTRING(CONVERT(VARCHAR(50),date,128),4,3) -- '-12'
  +RIGHT(CONVERT(VARCHAR(50),date,128),LEN(CONVERT(VARCHAR(50),date,128))-10) -- ' 12:33:00.0'