4

如何将“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,但仍然无法翻转它。

数据库是 MS SQL

4

3 回答 3

3
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)
于 2012-04-19T09:56:07.217 回答
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'
于 2012-04-19T10:17:43.970 回答
0

您可以使用 Format 函数来交换日期和月份,同时保留年份和小时:

update MyTable
set [date] = 
FORMAT([date],'yyyy') + '-' +
FORMAT([date],'dd')  + '-' +
FORMAT([date],'MM') + ' ' +
FORMAT([date],'hh:mm:ss')
from MyTable
于 2021-10-14T20:58:48.897 回答