菜鸟提问!! 如何能个得到上个月的第一天和最后一天的日期,比如说:今天是2006-3-1,我想得到2006-2-1 00:00:000和2006-2-28 23:59:000

Nicholasqpl 2006-02-08 12:24:58
菜鸟提问!! 如何能个得到上个月的第一天和最后一天的日期,比如说:今天是2006-3-1,我想得到2006-2-1 00:00:000和2006-2-28 23:59:000(毫秒可以忽略不计).


谢谢赐教.
...全文
514 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
caiyunxia 2006-02-08
  • 打赏
  • 举报
回复
select dateadd(dd,-day('2005-03-21'),'2005-03-21')

select dateadd(mm,-1,dateadd(dd,-day('2005-03-21')+1,'2005-03-21'))
坎井之蛙 2006-02-08
  • 打赏
  • 举报
回复
学习
terry52 2006-02-08
  • 打赏
  • 举报
回复
http://terry52.cnblogs.com/archive/2005/12/28/306271.html
xq02 2006-02-08
  • 打赏
  • 举报
回复
改正一下
declare @Now datetime,@Lday datetime,@Fday datetime
set @Now='2006-03-8'
select @Now=convert(datetime,(cast(Year(@Now) as varchar)+'-'+cast(month(@Now) as varchar)+'-01'),120)
set @Lday=dateadd(ss,-1,@Now)--最后一天
select @Lday
set @Fday=dateadd(mm,-1,@Now)--第一天
select @Fday

------------------------------------------------------
2006-02-28 23:59:59.000

(所影响的行数为 1 行)


------------------------------------------------------
2006-02-01 00:00:00.000

(所影响的行数为 1 行)
xq02 2006-02-08
  • 打赏
  • 举报
回复

------------------------------------------------------
2006-02-28 23:59:59.000

(所影响的行数为 1 行)


------------------------------------------------------
2006-02-01 00:00:00.000

(所影响的行数为 1 行)
xq02 2006-02-08
  • 打赏
  • 举报
回复
declare @Now datetime,@Lday datetime,@Fday datetime
set @Now='2006-03-01'
set @Lday=dateadd(ss,-1,@Now)--最后一天
select @Lday
set @Fday=dateadd(mm,-1,@Now)--第一天
select @Fday
samfeng_2003 2006-02-08
  • 打赏
  • 举报
回复
好!学习一下!:)
mislrb 2006-02-08
  • 打赏
  • 举报
回复
mark
lsqkeke 2006-02-08
  • 打赏
  • 举报
回复
学习 :)
点点星灯 2006-02-08
  • 打赏
  • 举报
回复
上一个月的第一天
SELECT DATEADD(mm, DATEDIFF(mm,0,dateadd(month,-1,getdate())), 0)

上一个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,dateadd(month,-1,getdate()))+1, 0))
点点星灯 2006-02-08
  • 打赏
  • 举报
回复
. SQL Server日期计算
a. 一个月的第一天
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
b. 本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
c. 一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
d. 季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
e. 上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
f. 去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
g. 本月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
h. 本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,
dateadd(dd,6-datepart(day,getdate()),getdate())
), 0)
i. 本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。

34,594

社区成员

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

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