sql server 查询日期中的常用语句, 例如本周第一天, 年内的第几周,有用
--本周第一天
SELECT
DATEADD(
Day
,1-(DATEPART(Weekday,getdate())+@@DATEFIRST-1)%7,getdate())
--or
select
dateadd(wk, datediff(wk,0,getdate()), 0)
--本周第一天
select
dateadd(wk, datediff(wk,0,getdate()), 6)
--上月第一天
SELECT
CONVERT
(
CHAR
(10),DATEADD(
month
,-1,DATEADD(dd,-
DAY
(GETDATE())+1,GETDATE())),111)
--上月最后一天
SELECT
CONVERT
(
CHAR
(10),DATEADD(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()),0)),111)+
' 23:59:59'
--本月第一天
select
dateadd(dd,-datepart(dd,getdate())+1,getdate())
--本月最后一天
select
dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate()))
--本月天数
select
datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()), dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())))
--or
select
datepart(dd,dateadd(dd,-1,dateadd(mm,1,
cast
(
cast
(
year
(getdate())
as
varchar
)+
'-'
+
cast
(
month
(getdate())
as
varchar
)+
'-01'
as
datetime))))
--下月第一天
select
dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))
--下月最后一天
SELECT
CONVERT
(
CHAR
(10),DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+2,0)),111)+
' 23:59:59'
--季度第一天
SELECT
DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--季度最后一天(直接推算法)
SELECT
DATEADD(
Day
,-1,
CONVERT
(
char
(8),DATEADD(
Month
,1+DATEPART(Quarter,getdate())*3-
Month
(getdate()),getdate()),120)+
'1'
)
--季度的最后一天(CASE判断法)
select
DATEADD(
Month
,DATEPART(Quarter,getdate())*3-
Month
(getdate()),getdate())
--本月第一个星期一
SELECT
DATEADD(wk, DATEDIFF(wk,
''
, DATEADD(dd, 6 -
DAY
(getdate()), getdate())),
''
)
--去年最后一天
SELECT
dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
--今年第一天
SELECT
DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
--今年最后一天
SELECT
dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1,0))
--指定日期所在周的任意一天
SELECT
DATEADD(
Day
,@number-DATEPART(Weekday,@dt),@dt)
--5.指定日期所在周的任意星期几
--A. 星期天做为一周的第1天
SELECT
DATEADD(
Day
,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B. 星期一做为一周的第1天
SELECT
DATEADD(
Day
,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
---周内的第几日
select
datepart(weekday,getdate())
as
周内的第几日
--年内的第几周
select
datepart(week,getdate())
as
年内的第几周
--年内的第几季
select
datepart(quarter,getdate())
as
年内的第几季
--判断某天是当月的第几周的sql函数
CREATE
FUNCTION
WeekOfMonth(@
day
datetime)
RETURNS
int
AS
begin
----declare @day datetime
declare
@num
int
declare
@Start datetime
declare
@dd
int
declare
@dayofweek
char
(8)
declare
@dayofweek_num
char
(8)
declare
@startWeekDays
int
---set @day='2009-07-05'
if datepart(dd,@
day
)=1
return
1
else
set
@Start= (
SELECT
DATEADD(mm, DATEDIFF(mm,0,@
day
), 0))
--一个月第一天的
set
@dayofweek= (datename(weekday,@Start))
---得到本月第一天是周几
set
@dayofweek_num=(
select
(
case
@dayofweek
when
'星期一'
then
2
when
'星期二'
then
3
when
'星期三'
then
4
when
'星期四'
then
5
when
'星期五'
then
6
when
'星期六'
then
7
when
'星期日'
then
1
end
))
set
@dayofweek_num= 7-@dayofweek_num+1
---得到本月的第一周一共有几天
---print @dayofweek_num
set
@dd=datepart(dd,@
day
)
----得到今天是这个月的第几天
--print @dd
if @dd<=@dayofweek_num
--小于前一周的天数
return
1
else
set
@dd=@dd-@dayofweek_num
if @dd % 7=0
begin
set
@num=@dd / 7
return
@num+1
end
else
--if @dd % 7<>0
set
@num=@dd / 7
set
@num=@num+1+1
return
@num
end
sql server 查询日期中的常用语句, 例如本周第一天, 年内的第几周,有用的更多相关文章
- SQL Server 查询、搜索命令、语句
--查询所有表 SELECT NAME,* FROM SYSOBJECTS WHERE XTYPE='U' order by SYSOBJECTS.name --查询所有存储过程 select * f ...
- SQL Server 查询处理中的各个阶段(SQL执行顺序)
SQL 不同于与其他编程语言的最明显特征是处理代码的顺序.在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后 ...
- Sql server 查询数据库中包含某字段的所有的表
我们有时候会需要查询数据库中包含某字段的所有的表,去进行update,这时就可以用下面的SQL来实现: select object_name(id) objName,Name as colName f ...
- SQL Server 查询数据库中被锁定的表
在一次测试过程中,发现有些表一直被锁定,从网上搜集了下资料,可以使用一下语句查看数据库中那些表正被锁定: select request_session_id spid,OBJECT_NAME(reso ...
- sql server查询数据库中所有表的行数
select a.name,b.rows from sysobjects a,sysindexes b where a.name = b.name order by b.rows desc
- SQL Server查询数据库中所有的表名及行数
SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE (a.type = ...
- MS Sql Server 查询数据库中所有表数据量
方法一: SELECT a.name,b.rows FROM sysobjects a INNER JOIN sysindexes b ON a.id=b.id ,) AND a.Type='u' O ...
- SQL Server查询中特殊字符的处理方法
SQL Server查询中,经常会遇到一些特殊字符,比如单引号“'”等,这些字符的处理方法,是SQL Server用户都应该需要知道的. 我们都知道SQL Server查询过程中,单引号“'”是特殊字 ...
- SQL Server查询中特殊字符的处理方法 (SQL Server特殊符号的转义处理)
SQL Server查询中特殊字符的处理方法 (SQL Server特殊符号的转义处理) SQL Server查询中,经常会遇到一些特殊字符,比如单引号'等,这些字符的处理方法,是SQL Server ...
随机推荐
- 传统的log4j实战
/** * */ package log4j; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator ...
- Axiom3D学习日记 2.介绍SceneManager,SceneNode,Entity
SceneManager(场景管理类) 所有出现在屏幕里的东西都受SceneManager管理(最好是这样),当你放置对象在场景里,SceneManager就会跟踪他们的位置,当你为场景创建一个相机, ...
- java 进制.
/* 整数的'3'种表现形式: 1,十进制. 2,八进制. 3,十六进制. */ public class IntegerDemo { public static void main(String[] ...
- 在Iframe框架下如何跳转到登录界面
在Iframe框架下跳转到登录界面总会跳到子界面中,类似于下图 试用Respon.Redirect()不行, 用Js函数,但我跳转代码都是写在cs文件中的,用Respose.write(),js函数根 ...
- oc常用正则表达式
常用的第三方正则库: http://regexkit.sourceforge.net/RegexKitLite/index.html 匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹 ...
- base64加密解密文件
1 //字符串加密 -(void)demo1 { //普通的 8 bit二进制数据 NSString *str = @"hello world!"; //将字符串转换成二进制数据 ...
- Using GUID to generate the unique file name in C#
GUID, the abbreviation of "Global Unique Identifier", is a unique reference number used as ...
- IE6 png兼容问题
1.IE6 png <!--[if IE 6]> <script src="../js/png.js" type="text/javascript& ...
- mysql基础操作整理(一)
显示当前数据库 mysql> select database(); +------------+ | database() | +------------+ | test | +-------- ...
- BeanUtils在web项目中的应用
package cn.gdpe.jdbc; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; im ...