高手们进来看谁用的sql语句最短!

tykao_cyj 2011-05-30 10:03:42
如题:利用sql语法转换Getdate()为2011年05月30日

鄙人不才,试了很久没找出有效的语法....


select CONVERT(varchar(4),YEAR(GETDATE()))+'年'+CONVERT(varchar(2),MONTH(GETDATE()))+'月'+CONVERT(varchar(2),DAY(GETDATE()))+'日' as DataTime

大家有什么好的语法请亮出来! 欢迎sql123等高手

...全文
187 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiemo587 2011-05-31
  • 打赏
  • 举报
回复
木有类似的函数,拼接或者替换解决吧,囧~~
coleling 2011-05-31
  • 打赏
  • 举报
回复
楼主,SQL Server版本的楼上各位已经写的很好了。我来点其他数据库的:


--MySQL
select date_format(now(),'%Y年%m月%d日');

--Oracle
select to_char(sysdate,'yyyy"年"mm"月"dd"日"') from dual;


比较起来,SQL Server在这个问题上要麻烦一点...
jiangzhong610 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tykao_cyj 的回复:]
100分不能来电惊奇的?

如:

SQL code

select replace(replace(CONVERT(nvarchar(10), getdate(), 120 ),'-','年'),'月','日')



为什么不可以?
[/Quote]

那用stuff可以的

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

还有一个就是大家都知道的

select ltrim(datepart(yy,GETDATE()))+'年'+ltrim(datepart(mm,GETDATE()))+'月'+ltrim(datepart(dd,GETDATE()))+'日' as DataTime
liuleiyu121520 2011-05-31
  • 打赏
  • 举报
回复
学习中
jxqn_liu 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 jxqn_liu 的回复:]

SQL code

select ltrim(Year(GetDate()))+'年'+ltrim(Month(GetDate()))+'月'+ltrim(Day(GetDate()))+'月'


在程序里面可以直接Format
[/Quote]
晕,打错字咯

select ltrim(Year(GetDate()))+'年'+ltrim(Month(GetDate()))+'月'+ltrim(Day(GetDate()))+'日'
jxqn_liu 2011-05-31
  • 打赏
  • 举报
回复

select ltrim(Year(GetDate()))+'年'+ltrim(Month(GetDate()))+'月'+ltrim(Day(GetDate()))+'月'

在程序里面可以直接Format
NOZMC 2011-05-31
  • 打赏
  • 举报
回复

CREATE FUNCTION get_date(@date DATETIME)
RETURNS NVARCHAR(11)
AS
BEGIN
RETURN STUFF(STUFF(CONVERT(NVARCHAR(10), @date, 23), 5, 1, '年'),8,1,'月') + '日'
END
GO

SELECT dbo.get_date(GETDATE())

drop FUNCTION get_date
唵嘛呢叭咪吽 2011-05-31
  • 打赏
  • 举报
回复
直接扔c#里有tostring();
打一壶酱油 2011-05-31
  • 打赏
  • 举报
回复
能够解决问题效率也不差的就可以了,你自己写的这个也行
htl258_Tony 2011-05-30
  • 打赏
  • 举报
回复
CREATE FUNCTION get_date(@date DATETIME)
RETURNS NVARCHAR(11)
AS
BEGIN
RETURN STUFF(STUFF(CONVERT(NVARCHAR(10), @date, 23), 5, 1, '年'),8,1,'月') + '日'
END
GO

SELECT dbo.get_date(GETDATE())
/*
-----------
2011年05月30日

(1 行受影响)
*/
建议整个函数
快溜 2011-05-30
  • 打赏
  • 举报
回复
可以考虑用stuff
select stuff(stuff(CONVERT(nvarchar(10), getdate(), 120 ),5,1,'年'),8,1,'月')+'日'
快溜 2011-05-30
  • 打赏
  • 举报
回复
这个问题没什么惊奇的答案,replace明显不行。你自己看结果就懂。
tykao_cyj 2011-05-30
  • 打赏
  • 举报
回复
100分不能来电惊奇的?

如:

select replace(replace(CONVERT(nvarchar(10), getdate(), 120 ),'-','年'),'月','日')


为什么不可以?
tykao_cyj 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kingtiy 的回复:]

SQL code
select substring(getdate(),1,4)+'年'+substring(getdate(),6,2)+'月'+substring(getdate(),9,2)+'月'
[/Quote]

问下 你用的是sql多少 在SubString中可以用到DateTime数据类型?
叶子 2011-05-30
  • 打赏
  • 举报
回复

select
ltrim(year(Getdate()))+'年'+ltrim(month(Getdate()))+'月'+ltrim(day(Getdate()))+'日'
/*
2011年5月30日
*/
--小F-- 2011-05-30
  • 打赏
  • 举报
回复
select ltrim(datepart(yy,GETDATE()))+'年'+ltrim(datepart(mm,GETDATE()))+'月'+ltrim(datepart(dd,GETDATE()))+'日' as DataTime

DataTime
------------------------------------------
2011年5月30日

(1 行受影响)
kingtiy 2011-05-30
  • 打赏
  • 举报
回复
select substring(getdate(),1,4)+'年'+substring(getdate(),6,2)+'月'+substring(getdate(),9,2)+'月'
饮水需思源 2011-05-30
  • 打赏
  • 举报
回复
SELECT CONVERT(CHAR(4),GETDATE(),102)+'年'+CONVERT(CHAR(2),GETDATE(),101)+'月'+CONVERT(CHAR(2),GETDATE(),103)+'日'
kingtiy 2011-05-30
  • 打赏
  • 举报
回复
substring(getdate(),1,4)+'年'+substring(getdate(),6,2)+'月'+substring(getdate(),9,2)+'月'
快溜 2011-05-30
  • 打赏
  • 举报
回复
select rtrim(YEAR(GETDATE()))+'年'+rtrim(MONTH(GETDATE()))+'月'+rtrim(DAY(GETDATE()))+'日' as DataTime
加载更多回复(1)

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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