哪位高手帮我改改这个日期函数,谢谢!

zl194 2010-08-30 09:28:42
数据库:SQL2000+SP4


CREATE FUNCTION CDATE

(@mydate Datetime)
RETURNS varchar(12)
AS
BEGIN
RETURN (convert(varchar(2),datepart(MM,@mydate))+'月'+convert(varchar(2),datepart(dd,@mydate))+'日 '+convert(varchar(2),datepart(hh,@mydate))+':'+convert(varchar(2),datepart(mi,@mydate)) )
END


SELECT dbo.CDATE(Convert(datetime,'2010-08-01 9:5'))



我想要得到月日 时间 格式的字符串。现在的函数得到的是'8月1日 9:5' 。
我想要得到:【08月01日 09:05】,怎么样得到呢。
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl194 2010-08-30
  • 打赏
  • 举报
回复
yhb417 非常感谢,你的方法可以。
zl194 2010-08-30
  • 打赏
  • 举报
回复
结贴早了,希望josy能再看一下。
SELECT dbo.CDATE(convert(datetime,'2010-08-01 9:30'))

返回的结果是:
08月1日 09:30

日期还是1位的,这怎么处理呢。
百年树人 2010-08-30
  • 打赏
  • 举报
回复
看来返回值的长度要改为14才行
CREATE FUNCTION CDATE

(@mydate Datetime)
RETURNS varchar(14)
AS
BEGIN
RETURN (datename(mm,@mydate)+'月'+datename(dd,@mydate)+'日 '+convert(varchar(5),@mydate,108))
END
go

select dbo.cdate(getdate())
/**

--------------
08月30日 09:40

(1 行受影响)

**/

--drop function cdate
修改一下昵称 2010-08-30
  • 打赏
  • 举报
回复

select convert(varchar(2),getdate(),109)+'月'
+ convert(varchar(2),getdate(),113)+'日'
+ convert(varchar(5),getdate(),108)

/*
-------------
08月30日09:41

(1 行受影响)

*/

百年树人 2010-08-30
  • 打赏
  • 举报
回复

-------------
08月30日 09:3

(1 行受影响)
百年树人 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zl194 的回复:]
josy 的日期部分没有变化,还是8月1日 不是08月01日
[/Quote]
哦,没看到前面的也要加0,再改一下
CREATE FUNCTION CDATE

(@mydate Datetime)
RETURNS varchar(13)
AS
BEGIN
RETURN (datename(mm,@mydate)+'月'+datename(dd,@mydate)+'日 '+convert(varchar(5),@mydate,108))
END
go

select dbo.cdate(getdate())
zl194 2010-08-30
  • 打赏
  • 举报
回复
josy 的日期部分没有变化,还是8月1日 不是08月01日
百年树人 2010-08-30
  • 打赏
  • 举报
回复
CREATE FUNCTION CDATE

(@mydate Datetime)
RETURNS varchar(13)
AS
BEGIN
RETURN (convert(varchar(2),datepart(MM,@mydate))+'月'+convert(varchar(2),datepart(dd,@mydate))+'日 '+convert(varchar(5),@mydate,108))
END
go

select dbo.cdate(getdate())
/**

-------------
8月30日 09:34

(1 行受影响)
**/

--drop function cdate

返回值的长度不够,RETURNS varchar(12) 改为RETURNS varchar(13)
百年树人 2010-08-30
  • 打赏
  • 举报
回复
CREATE FUNCTION CDATE

(@mydate Datetime)
RETURNS varchar(12)
AS
BEGIN
RETURN (convert(varchar(2),datepart(MM,@mydate))+'月'+convert(varchar(2),datepart(dd,@mydate))+'日 '+convert(varchar(5),@mydate,108))
END

34,593

社区成员

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

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