sqlserver2005中更新查询格林时间转换成标准时间

啾啾我 2013-08-05 03:38:37
我的数据库中有一列 pubDate varchar(50)其值都是格林时间例如1325743277,类似这种,我想把他更新成标准时间(2013-08-03 12:30:30)这样的标准时间时间,怎么处理呢?

我查了相关资料这样去更新

UPDATE test SET pubDate = DATEADD(S, [pubDate]+ 8 * 3600,'1970-01-01 00:00:00')

结果得到的是01 5 2012 2:01PM这么一个值,而我想要的是2013-08-03 12:30:30这样的时间。
请各位帮忙解决,感激不尽!!!
...全文
243 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
啾啾我 2013-08-05
  • 打赏
  • 举报
回复
解决方法:

UPDATE test SET pubDate = CONVERT(varchar(100), DATEADD(s, [pubDate]+ 8 * 3600,'1970-01-01 00:00:00'), 120)
Shawn 2013-08-05
  • 打赏
  • 举报
回复
你的字段类型是什么?DATETIME吧,不管数据库内部怎么存储,你显示时转换成你想的格式,就行了。
Shawn 2013-08-05
  • 打赏
  • 举报
回复
SELECT CONVERT(VARCHAR(19), GETDATE(), 120)
SELECT CONVERT(VARCHAR(19), GETDATE(), 121)
發糞塗牆 2013-08-05
  • 打赏
  • 举报
回复
你想转成什么样就转成什么样
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
啾啾我 2013-08-05
  • 打赏
  • 举报
回复
引用 1 楼 wwwwgou 的回复:
UPDATE test SET pubDate = CONVERT(datetime, DATEADD(S, [pubDate]+ 8 * 3600,'1970-01-01 00:00:00'), 120)
我测试的结果“08 5 2013 8:50AM”还是一样啊
Shawn 2013-08-05
  • 打赏
  • 举报
回复
UPDATE test SET pubDate = CONVERT(datetime, DATEADD(S, [pubDate]+ 8 * 3600,'1970-01-01 00:00:00'), 120)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧