标题:sql中时间类函数让我迷茫
只看楼主
偷着乐
Rank: 1
等 级:新手上路
帖 子:176
专家分:0
注 册:2006-8-16
 问题点数:0 回复次数:2 
sql中时间类函数让我迷茫

比如说时间转换,取值.....好多次了,我总爱犯错....有谁可以详细的给我说明一下吗?谢谢!

搜索更多相关主题的帖子: sql 函数 时间 
2006-08-17 17:24
潇洒老乌龟
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:407
专家分:0
注 册:2005-12-13
得分:0 

SQL Server日期算法

一周的第一天
select @@DATEFIRST

一个月的第一天
select dateadd(mm,datediff(mm,0,getdate()),0)

本周的星期一
select dateadd(wk,datediff(wk,0,getdate()),0)

一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

当天的零时
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

上个月的最后一天 :本月第一天减2ms.
SELECT dateadd(ms,-2,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

本月的最后一天
SELECT dateadd(ms,-2,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

本月的第一个星期一

去掉时分秒
DATEADD(day, DATEDIFF(day,0,getdate()), 0)
显示星期几
select datename(weekday,getdate())
如何取得某个月的天数
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))

判断是否闰年:
SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))))
when 28 then '平年' else '闰年' end
一个季度多少天
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time))


乌龟学堂http://www. 承接各种软件开发、系统集成、网络搭建。 QQ:124030710
2006-08-17 22:02
偷着乐
Rank: 1
等 级:新手上路
帖 子:176
专家分:0
注 册:2006-8-16
得分:0 
谢谢版主,受教了

一切都是那么美好!比尼采还想象得深远!比幻觉还真实!
2006-08-18 08:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-84559-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.074813 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved