关于日期的一个菜鸟问题,急,在线等!

kinmax 2004-07-09 10:54:20
SQLSERVER里面有没有类似VB的Format涵数啊.请指教,谢谢,马上给分!
...全文
100 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Limperator 2004-07-09
  • 打赏
  • 举报
回复
convert函数, 自己阅读一下联机帮助
cenxaoi 2004-07-09
  • 打赏
  • 举报
回复
/*返回最后一天*/
create function uf_LastDay( @date datetime)
returns int
as
begin
declare @year int, @Month int,@day int,@lastday int

select @year=datepart(year,@date),@month=datepart(month,@date),@day=datepart(day,@date),@lastday=0
if @year%100=0
begin
if @year%400=0 set @lastday=1
end
else
begin
if @year%4=0 set @lastday=1
end

if @month in (1,3,5,7,8,10,12)
set @lastday=31
else if @month in (4,6,8,9,11)
set @lastday=30
else set @lastday=@lastday+28
return @lastday
end
如果你使用的是 SQL Server 2000
可以先生成这样一个函数

然后这样调用
select dbo.uf_LastDay(日期变量或日期字段)
注意 如果你生成函数时用的登陆名不是sa的话
调用函数是
select 登陆名.uf_LastDay(日期变量或日期字段)

也可以这样用
select 登陆名.uf_LastDay(日期字段) 最后一日 ,* from 表
cenxaoi 2004-07-09
  • 打赏
  • 举报
回复
/*返回最后一天*/
create function uf_LastDay( @date datetime)
returns int
as
begin
declare @year int, @Month int,@day int,@lastday int

select @year=datepart(year,@date),@month=datepart(month,@date),@day=datepart(day,@date),@lastday=0
if @year%100=0
begin
if @year%400=0 set @lastday=1
end
else
begin
if @year%4=0 set @lastday=1
end

if @month in (1,3,5,7,8,10,12)
set @lastday=31
else if @month in (4,6,8,9,11)
set @lastday=30
else set @lastday=@lastday+28
return @lastday
end
如果你使用的是 SQL Server 2000
可以先生成这样一个函数

然后这样调用
select dbo.uf_LastDay(日期变量或日期字段)
注意 如果你生成函数时用的登陆名不是sa的话
调用函数是
select 登陆名.uf_LastDay(日期变量或日期字段)

也可以这样用
select 登陆名.uf_LastDay(日期字段) 最后一日 ,* from 表
outwindows 2004-07-09
  • 打赏
  • 举报
回复
改一下hudan的不就可以了?thinking more...
select dateadd(Day,0-day(getdate()),dateadd(Month,1,getdate()))
-------------------^
select dateadd(Day,1-day(getdate()),dateadd(Month,1,getdate()))
kinmax 2004-07-09
  • 打赏
  • 举报
回复
谢谢hudan,最后一天的时间找到了,那要找每月第一天的时间呢,是否有好的方法.
okmiddeok 2004-07-09
  • 打赏
  • 举报
回复
好象没有具体的函数,用JS做库的方法试试
hudan 2004-07-09
  • 打赏
  • 举报
回复
select dateadd(Day,0-day(getdate()),dateadd(Month,1,getdate()))
kinmax 2004-07-09
  • 打赏
  • 举报
回复
怎么得到每月最后一天的时间啊
solidpanther 2004-07-09
  • 打赏
  • 举报
回复
select CONVERT(varchar(10), getDate(),120) --不要时间2002-1-1
select convert(char(8),getdate(),112) ----20020101
select convert(char(8),getdate(),108) ---06:05:05
kinmax 2004-07-09
  • 打赏
  • 举报
回复
用VB的话只要用FORMAT涵数就实现,SQLSERVER呢?
饮水需思源 2004-07-09
  • 打赏
  • 举报
回复
用convert或cast函数
kinmax 2004-07-09
  • 打赏
  • 举报
回复
我是想得到每月的最后一天的时间啊.
skyboy0720 2004-07-09
  • 打赏
  • 举报
回复
CONVERT()
outwindows 2004-07-09
  • 打赏
  • 举报
回复
select convert(varchar(10),getdate(),120)
--结果
'2004-07-09'
kinmax 2004-07-09
  • 打赏
  • 举报
回复
没人回啊,自己顶一下哈!

34,576

社区成员

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

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