当前位置: 代码迷 >> Sql Server >> mssql 字段类型转换解决思路
  详细解决方案

mssql 字段类型转换解决思路

热度:15   发布时间:2016-04-24 19:27:32.0
mssql 字段类型转换
sql 转换datetime字段为varchar(30)时能不能规定格式,如果不规定的话就会变成这样“11 22 2013 10:15AM”,而我想要“2013-11-22 10:15:13”这样的格式  
alter table MeetingRecording ALTER COLUMN DT_Time varchar(50)

------解决方案--------------------
自己调
Select CONVERT(varchar(100), GETDATE(), 0)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1)--05/16/06
Select CONVERT(varchar(100), GETDATE(), 2)--06.05.16
Select CONVERT(varchar(100), GETDATE(), 3)--16/05/06
Select CONVERT(varchar(100), GETDATE(), 4)--16.05.06
Select CONVERT(varchar(100), GETDATE(), 5)--16-05-06
Select CONVERT(varchar(100), GETDATE(), 6)--16 05 06
Select CONVERT(varchar(100), GETDATE(), 7)--05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8)--10:57:46
Select CONVERT(varchar(100), GETDATE(), 9)--05 16 200610:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10)--05-16-06
Select CONVERT(varchar(100), GETDATE(), 11)--06/05/16
Select CONVERT(varchar(100), GETDATE(), 12)--060516
Select CONVERT(varchar(100), GETDATE(), 13)--16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14)--10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20)--2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21)--2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22)--05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23)--2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24)--10:57:47
Select CONVERT(varchar(100), GETDATE(), 25)--2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100)--05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101)--05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102)--2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103)--16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104)--16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105)--16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106)--16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107)--05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108)--10:57:49
Select CONVERT(varchar(100), GETDATE(), 109)--05 16 200610:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110)--05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111)--2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112)--20060516
Select CONVERT(varchar(100), GETDATE(), 113)--16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114)--10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120)--2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121)--2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126)--2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130)--18 ???? ?????? 142710:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131)--18/04/142710:57:49:920AM

------解决方案--------------------
查询的时候使用convert转换下:convert(varchar(50),DT_Time,121)
------解决方案--------------------
你修改的也没错,只不过需要udpate一下


select convert(varchar(30),cast('11 22 2013 10:15AM' as datetime),120)
/*
2013-11-22 10:15:00
*/

--更新一下就行
update  MeetingRecording
set DT_Time = select convert(varchar(30),cast(DT_Time as datetime),120)

------解决方案--------------------
update  MeetingRecording
set DT_Time = convert(varchar(30),DT_Time ,120)

这样就可以了
------解决方案--------------------
要这样改
alter table MeetingRecording 
ADD DT_Time2 varchar(50)
GO
UPDATE MeetingRecording  SET DT_Time2 =CONVERT(VARCHAR(50),DT_Time,120)
GO
ALTER TABLE MeetingRecording 
DROP COLUMN DT_Time
GO
SP_RENAME 'MeetingRecording.DT_Time2','MeetingRecording.DT_Time'
  相关解决方案