如何在日期时间内翻转月份和日期?
问题描述:
如何翻转“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
答
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
OR
select convert(datetime, convert(varchar(100), @date), 20)
答
你可以只执行一些字符串操作(注:未经测试的代码)
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'
不这样做的SQL。在需要显示日期时间时在应用程序中执行此操作。 – Oded 2012-04-19 09:48:27
不,我不能。原因是因为数据错误地填充了。所以我需要修复这些数据。其他日期字段格式正确。因此,我不能只为这个领域改变应用程序。数据必须更正。 – cooldude 2012-04-19 09:52:43
你是什么意思?日期是否正确? DateTime值**没有格式** - 这是SSMS向您显示的方式。 – Oded 2012-04-19 09:54:08