sql中计算某天是全年的第几周及取得某天的所在周的周一的日期的函数
2018-01-05 10:44
726 查看
--取得某天的所在周的周一的函数 CREATE FUNCTION getMondayBtDate(@date datetime) RETURNS date AS begin DECLARE @week INT,@cnt INT select @week = DATEPART(dw,@date) SET @cnt = 2 - @week IF(@week = 1) BEGIN SET @cnt = -6 END RETURN DATEADD(DAY, @cnt, @date) end --获取某天是当前年份中的第几周,以周一为一周的开始 CREATE FUNCTION getWeekNoBtDate(@date datetime) RETURNS date AS begin DECLARE @dtMonday DATETIME,@cnt INT; select @dtMonday = dbo.getMondayBtDate(@date) SELECT @cnt = DATEPART(dy,@dtMonday) RETURN CAST(year(@dtMonday) AS NVARCHAR) + CASE WHEN (@cnt+6)/7 < 10 THEN '0'+CAST((@cnt+6)/7 AS nvarchar) ELSE CAST((@cnt+6)/7 AS NVARCHAR) END end
SQL Server DATEPART() 函数
SQL Server Date 函数定义和用法
DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。语法
DATEPART(datepart,date)
date 参数是合法的日期表达式。datepart 参数可以是下列的值:
datepart | 缩写 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小时 | hh |
分钟 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
纳秒 | ns |
实例
假设我们有下面这个 "Orders" 表:OrderId | ProductName | OrderDate |
---|---|---|
1 | 'Computer' | 2008-12-29 16:25:46.635 |
SELECT [code]DATEPART(yyyy,OrderDate)AS OrderYear,
DATEPART(mm,OrderDate)AS OrderMonth,
DATEPART(dd,OrderDate)AS OrderDay
FROM Orders
WHERE OrderId=1
[/code]
结果:
OrderYear | OrderMonth | OrderDay |
---|---|---|
2008 | 12 | 29 |
相关文章推荐
- php时间戳函数实现计算第几周,以及当天所在周的具体日期范围
- T-SQL 2 Tips: 1.计算任意两日期之间的"周一"到"周日"分别各有几个! 2.根据出生日期计算精确年龄!
- C# / ASP.NET 计算某个日期所在的周是当年的第几周
- 计算当前日期是任意时间段内第几周的函数
- C#时间函数扩展(计算第几周和周起止日期)
- C# / ASP.NET 计算某个日期所在的周是当年的第几周
- 根据指定日期计算所在周一的日期
- SQL 10 函数 3 日期时间函数 - 3 取得当前日期时间
- SQL日期集合-周、月、季度、年等计算以及自定义函数
- delphi中计算指定日期是该月第几周的函数
- Java 根据指定日期计算所在周的周一和周日
- SQL Server DATEDIFF() 函数计算sql语句俩个日期间隔
- 根据日期计算所在月的第几周和星期几
- SQL: 判断给定日期是财政年度第几周的函数
- delphi中计算指定日期是该月第几周的函数
- sql创建 自定义函数返回当前日期所在月的第一天最后一天
- SQL 10 函数 3 日期时间函数 - 5 计算日期差额
- 通过函数计算任意日期所在月和周的起始时间
- SQL方法~获取给定时间所在周一至周日的日期范围
- Oracle PL/SQL之NEXT_DAY - 取得下一个星期几所在的日期