TSQL如何格式化输出时间

sdyqingdao 2008-09-01 10:22:47
将getdate()得到的日期时间修改成”2008年9月1日“的格式?
...全文
252 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
幸运的意外 2008-09-01
  • 打赏
  • 举报
回复
这个得自己写,就是吧时间先转化为字符串,在截取相应长度的字符与年,月,日组成你要求的形式.如果这样的处理比较多,可以把这个过程写成函数.这样可能速度稍快一些.
今天看到邹老大了,呵呵.
it_yueluo 2008-09-01
  • 打赏
  • 举报
回复
select cast (year(getdate()) as varchar)+'年'+cast (month(getdate()) as varchar)+'月'+cast (day(getdate()) as varchar)+'日'

select stuff(stuff(convert(varchar(10), getdate(),120),5,1,'年'),8,1,'月')+'日'

两者均能实现!
水族杰纶 2008-09-01
  • 打赏
  • 举报
回复
select stuff(stuff(convert(varchar(10),getdate(),120),5,1,'年'),8,1,'月')+'日'
yrwx001 2008-09-01
  • 打赏
  • 举报
回复
select cast(year(getdate()) as varchar(8)) + '年'+ cast(month(getdate()) as varchar(2))+ '月' + cast(day(getdate())as varchar(2)) + '日'
忆轩辕 2008-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hyrongg 的回复:]

蠢办法


SQL code
select cast(year(getdate()) as varchar)+'年'+cast(month(getdate()) as varchar)+'月'+cast(day(getdate()) as varchar)+'日'




2008年9月1日
[/Quote]
jobine 2008-09-01
  • 打赏
  • 举报
回复
declare @dt date
set @dt=CONVERT(date, getdate())
select CONVERT(nvarchar, DATEPART(YYYY, @dt))+N'年'+ CONVERT(nvarchar,DATEPART(mm, @dt))+N'月'+CONVERT(nvarchar,DATEPART(dd, @dt))+N'日'
tangqijun199 2008-09-01
  • 打赏
  • 举报
回复
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM
tangqijun199 2008-09-01
  • 打赏
  • 举报
回复

select str(year(getdate()),4,0)+'年'+replace(str(month(getdate()),2,0),' ','')+'月'+replace(str(day(getdate()),2,0),' ','')+'日'

一般这种格式化是可以在程序代码里实现的不需要到sql中
dawugui 2008-09-01
  • 打赏
  • 举报
回复
就是楼上的方法.
zjcxc 元老 2008-09-01
  • 打赏
  • 举报
回复
sql server 可以用 convert 来转换生成不同的日期格式, 但没有年月日这种
dobear_0922 2008-09-01
  • 打赏
  • 举报
回复
select getdate()

select stuff(stuff(convert(varchar(10), getdate(),120),5,1,'年'),8,1,'月')+'日'

/*
-----------------------
2008-09-01 10:30:09.357

(1 行受影响)


---------------
2008年09月01日

(1 行受影响)
*/
zjcxc 元老 2008-09-01
  • 打赏
  • 举报
回复
SELECT RTRIM(YEAR(GETDATE()) + N'年' + RTRIM(MONTH(GETDATE()) + N'月' + RTRIM(DAY(GETDATE()) + N'日'
hyrongg 2008-09-01
  • 打赏
  • 举报
回复

蠢办法


select cast(year(getdate()) as varchar)+'年'+cast(month(getdate()) as varchar)+'月'+cast(day(getdate()) as varchar)+'日'


2008年9月1日
fcuandy 2008-09-01
  • 打赏
  • 举报
回复
select stuff(stuff(convert(varchar(8),getdate(),112),5,0,'年'),8,0,'月') + '日'
dingzhiming 2008-09-01
  • 打赏
  • 举报
回复
SELECT RTRIM(YEAR(GETDATE())) + N'年'
+ RTRIM(MONTH(GETDATE())) + N'月'
+ RTRIM(DAY(GETDATE())) + N'日'
ocean_958 2008-09-01
  • 打赏
  • 举报
回复
很简单,路过
dsp_zerg 2008-09-01
  • 打赏
  • 举报
回复

select left(convert(varchar,getdate(),112),4)+'年'+substring(convert(varchar,getdate(),112),6,1)+'月'+right(convert(varchar,getdate(),112),1)+'日'
swallow0175 2008-09-01
  • 打赏
  • 举报
回复
谁让是老外的东西呢,只能拼写字符串了
zds1010 2008-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hyrongg 的回复:]


SQL code
select cast(year(getdate()) as varchar)+'年'+cast(month(getdate()) as varchar)+'月'+cast(day(getdate()) as varchar)+'日'




2008年9月1日
[/Quote]

34,594

社区成员

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

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