关于时间类型字段格式问题。

Eric1006 2009-09-10 01:48:40
表中时间类型字段 fTime存在格式如“2006-5-2 上午 09:55:03”、““2006-5-3 下午 08:50:08”的值,想在SELECT的时候将其转换成格式为 YYYY-MM-DD HH:MM:SS的格式。该怎样1?
...全文
82 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eric1006 2009-09-10
  • 打赏
  • 举报
回复
不好意思,没表达好。我补充一下,转换要求举例:
2007-8-9 上午 01:02:03 转为 2007-08-08 01:02:03
2007-8-10 上午 01:02:03 转为 2007-08-10 01:02:03
2007-8-9 下午 01:02:03 转为 2007-08-09 13:02:03
xuejiecn 2009-09-10
  • 打赏
  • 举报
回复
同意在前台处理。
lidanzi 2009-09-10
  • 打赏
  • 举报
回复

declare @date varchar(50)
set @date='2006-5-2 上午 09:55:03'

select case substring(@date,10,2)
when '下午' then
dateadd(hh,12,convert(datetime,stuff(@date,charindex('下午',@date),3,' ')))
when '上午' then
convert(datetime,stuff(@date,charindex('上午',@date),3,' '))
end
7761098 2009-09-10
  • 打赏
  • 举报
回复
前臺處理好了,這個數據庫處理不是很好
silentwins 2009-09-10
  • 打赏
  • 举报
回复
CONVERT(varchar(20),fTime,120)
soft_wsx 2009-09-10
  • 打赏
  • 举报
回复
select convert(varchar(20),cast(replace(replace('2006-5-2 上午 09:55:03','上午',''),'下午','') as datetime),120) 
--2006-05-02 09:55:03
--YYYY-MM-DD HH:MM:SS
soft_wsx 2009-09-10
  • 打赏
  • 举报
回复
select convert(varchar(20),cast(replace(replace('2006-5-2 上午 09:55:03','上午',''),'下午','') as datetime),120)
--2006-05-02 09:55:03
--YYYY-MM-DD HH:MM:SS
JonasFeng 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liangck 的回复:]
建议在前台应用程序中去做格式的显示操作..

SQL codeSELECTCONVERT(varchar(20),fTime,120)AS fTimeFROM tb;
[/Quote]
UP
lg3605119 2009-09-10
  • 打赏
  • 举报
回复

declare @s varchar(100)
set @s = '2006-5-2 上午 09:55:03'
select cast(replace(replace(@s,'上午',''),'下午','') as datetime)

lihan6415151528 2009-09-10
  • 打赏
  • 举报
回复

select replace(replace('2006-5-2 上午 09:55:03','上午',''),'下午','')


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2006-5-2 09:55:03

(所影响的行数为 1 行)


liangCK 2009-09-10
  • 打赏
  • 举报
回复
建议在前台应用程序中去做格式的显示操作..

SELECT CONVERT(varchar(20),fTime,120) AS fTime
FROM tb;
华夏小卒 2009-09-10
  • 打赏
  • 举报
回复


select replace(replace('2006-5-2 上午 09:55:03','上午',''),'下午','')

34,576

社区成员

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

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