sql中计算某天是全年的第几周及取得某天的所在周的周一的日期的函数
--取得某天的所在周的周一的函数
CREATE FUNCTION getMondayBtDate(@date datetime)
RETURNS date
AS
begin
DECLARE @week INT,@cnt INT
select @week = DATEPART(dw,@date)
SET @cnt = - @week
IF(@week = )
BEGIN
SET @cnt = -
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+)/ < THEN ''+CAST((@cnt+)/ AS nvarchar) ELSE CAST((@cnt+)/ AS NVARCHAR) END
end
SQL Server DATEPART() 函数
定义和用法
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 语句:
SELECTDATEPART(yyyy,OrderDate)AS OrderYear,
DATEPART(mm,OrderDate)AS OrderMonth,
DATEPART(dd,OrderDate)AS OrderDay
FROM Orders
WHERE OrderId=1
结果:
| OrderYear | OrderMonth | OrderDay |
|---|---|---|
| 2008 | 12 | 29 |
sql中计算某天是全年的第几周及取得某天的所在周的周一的日期的函数的更多相关文章
- sql中计算百分比
sql中计算百分比:(转成字符串然后拼接%) ),) AS CHAR),'%') as aa from act_canal; 效果:
- Float类型在SQL中计算
- sql中between and 用法
SQL中 between and是包括边界值的,not between不包括边界值,不过如果使用between and 限定日期需要注意,如果and后的日期是到天的,那么默认为00:00:00 例如: ...
- SQL中EXISTS怎么用[转]
SQL中EXISTS怎么用 1 2 3 4 分步阅读 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False 方法/步骤 1 EXISTS用于 ...
- SQL中CHARINDEX()/INSTR()函数和SUBSTRING()/SUBSTR()函数
一.SQLServer中的CHARINDEX() 和ORACLE中的INSTR()函数 1.INSTR(C1,C2[,I[,J]]) [功能]在一个字符串中搜索指定的字符,返回发现指定的字符的位置; ...
- Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
当前有两个表,sgroup与sgroupuser,两者通过gKey关联,而sgroup表记录的是组,而sgroupuser记录是组中的用户,因此在sgroupuser中不一定有数据.需要使用Left ...
- PL/SQL中SELECT总结
一.SELECT 语句的各个关键词的顺序及作用简解(这个我简略点写~) 1.SELECT 2.FROM 3.WHERE 4.GROUP BY ---对结果集进行分组,通常与聚合函数一起使用 5.H ...
- SQL 中数值型数据截取以及四舍五入
SQL 中数值型数据截取及四舍五入 例一: -- 将两个数值分别截取只保留两位小数 ( 注意此时字段默认为 decimal ) select CAST ( 10.097 as decimal ( 10 ...
- SQL 中ROLLUP 用法
SQL 中ROLLUP 用法 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集. 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有 ...
随机推荐
- Knockout学习之表单绑定器(下)
“hasFocus”绑定 hasFocus绑定器会将DOM元素的焦点状态与视图模型中的属性相关联,当你设置视图模型中关联的属性为true或false后,将能够设置关键的DOM元素是否获得焦点. 比如下 ...
- 转 CentOS开启FTP及配置用户
原文链接: http://www.centos.bz/2011/03/centos-install-vsftpd-ftp-server/ vsftpd作为FTP服务器,在Linux系统中是非常常用的. ...
- php Socket表单提交学习一下
<?php //发送请求指定的页面 $file = "1.php"; $filename = "gitignore.txt"; //文件名 $path = ...
- SpringBoot与Dubbo整合的三种方式
1. 使用默认application.properties和注解的方式 导入dubbo-starter,在application.properties配置属性,使用@Service注解来暴露服务,使用 ...
- ios中调用摄像头
@interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDi ...
- iOS 常用的几个math函数
1.取整数 double ceil (double); 取上整 double floor (double); 取下整 2.绝对值 double fabs (double);求绝对值 double ca ...
- LVS负载均衡之持久性连接介绍(session篇)
在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到 ...
- 如何在windows server 2008 部署asp.net mvc
我们做好的asp.net mvc网站,要部署到windows server 2008(IIS7.0)网站,首先要安装好.net framework 4.0,开发工具VS2010,VS2012,VS20 ...
- myeclipse 遇到的一些问题及解决方案
1..提示键配置 一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多 ...
- Mysql按数字大小排序String字段
问题是这样的,当我们按由大到小的顺序排序一组数字的时候,它应该如此: 9800 8000 900 但如果是这些数字是以String类型存储的话,直接排序的结果会是这样: 9800 900 8000 当 ...