当前位置:首页 » 编程语言 » sql日期第一天怎么获得
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql日期第一天怎么获得

发布时间: 2023-01-21 17:12:38

A. sql 获取当前月的第一天

DATEDIFF(mm,0,getdate())用来计算出“0”和当前日期所相差的月份数,比如说相差10个月。
DATEADD (mm,x,0)
在0日期的基础上,加上x个月。
那么就相当于把去掉了日期,只留下了月份,也就是当前月份了。没有日期,也就是第一天的0点了。

B. sql如何获取日期月份的第一天

如:给定的年月格式为20157,代表2015年7月。

取某月第一天:

SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)

结果:

C. SQL Server 怎么获得本周内: 周六为第一天 周五为第最后一天

SET DATEFIRST { number | @number_var }
SQL Server 默认一周的第一天是 星期天

1> SELECT
2> GETDATE(),
3> '周中第几天' AS '日期部分',
4> DATEPART(dw, GETDATE()) AS [数值]
5> go
日期部分 数值
----------------------- ---------- -----------
2013-04-20 10:06:54.647 周中第几天 7
(1 行受影响)

这里设置 星期六 为 每周的第一天。
SET DATEFIRST 6
GO

1> SELECT
2> GETDATE(),
3> '周中第几天' AS '日期部分',
4> DATEPART(dw, GETDATE()) AS [数值]
5> go
日期部分 数值
----------------------- ---------- -----------
2013-04-20 10:07:56.857 周中第几天 1
(1 行受影响)

D. sql如何取某年某月的第一天和最后一天

declare @year int;
declare @month int;
set @year = 2016;
set @month = 11;
--第一天
select cast( @year as nvarchar(4) ) +'-' + right( cast( ( 100 + @month) as nvarchar(3)),2 ) + '-01'

--最后一天
select DATEADD(day,-1, ( DATEADD( month, 1, ( cast( @year as nvarchar(4) ) +'-' + right( cast( ( 100 + @month ) as nvarchar(3)),2 ) + '-01'))))

你再看看有简单写法吗

E. 使用SQL语句取相关日期(当月天数,当月第一天,当月最后一天,本年最后一天,当月第一个星期)

当月天数

selectday(dateadd(ms,-3,DATEADD(m,DATEDIFF(m,0,getdate())+1,0)))

当月第一天

selectdateadd(d,-day(getdate())+1,getdate())

当月最后一天

selectdateadd(d,-day(getdate()),dateadd(m,1,getdate()))

本年最后一天

selectdateadd(d,-day(getdate()),dateadd(m,12,getdate()))

当月第一个星期一

SELECTDATEADD(wk,DATEDIFF(wk,'',DATEADD(dd,6-DAY(getdate()),getdate())),'')

F. sql 语句 怎么获取指定月的第一天和最后一天

first_day()得到一个月中的第一天:如first_day(to_date('2008-5-22','yyyy-mm-dd')) 结果:2008-5-1
last_day()得到一个月最后的一天:如:last_day(to_date('2008-5-22','yyyy-mm-dd')) 结果:2008-5-31 ;

G. 获取本月、本季、本年第一天和最后一天等等sql(sql server)

转自: http://blog.itpub.net/183473/viewspace-723253

--DATEDIFF ( datepart , startdate , enddate )

--DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数

--DATEADD ( datepart , number, date )

--DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期

--计算一个月第一天

SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0)

--本周的星期一,这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。

SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)

--一年的第一天,现在用年(yy)的时间间隔来显示这一年的第一天。

SELECT  DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0)

--季度的第一天,假如你要计算这个季度的第一天,这个例子告诉你该如何做。

SELECT  DATEADD(qq,  DATEDIFF(qq,0,getdate()),  0)

--上个月的最后一天,这是一个计算上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql  Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。

SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0))

--去年的最后一天,连接上面的例子,为了要得到去年的最后一天,你需要在今年的第一天上减去3毫秒。

SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))

--本月的最后一天,现在,为了获得本月的最后一天,我需要稍微修改一下获得上个月的最后一天的语句。修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。这是计算本月最后一天的SQL脚本

SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0))

--本年的最后一天,你现在应该掌握这个的做法,这是计算本年最后一天脚本

SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate())+1,  0))

--本月的第一个星期一,好了,现在是最后一个例子。这里我要计算这个月的第一个星期一。这是计算的脚本。

SELECT  DATEADD(wk,  DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),  0)

--a. 本月的第一天

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

--b. 本月的最后一天

select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate())+1, 0)) AS 本月的最后一天

--c. 上个月的最后一天

select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate()), 0)) AS 上个月的最后一天

--d. 本周的星期一

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

--e. 本季度的第一天

select dateadd(qq, datediff(qq,0,getdate()), 0) AS 本季度的第一天

--f. 本季度的最后一天

select DATEADD(ms,-3,dateadd(qq, datediff(qq,0,getdate())+1, 0)) AS 本季度的最后一天

--g. 本月的第一个星期一

select dateadd(wk, datediff(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) AS 本月的第一个星期一

--h. 本年的第一天

select dateadd(yy, datediff(yy,0,getdate()), 0) AS 本年的第一天

--i. 本年的最后一天

select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate())+1, 0)) AS 本年的最后一天

--f. 去年的最后一天

select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate()), 0)) AS 去年的最后一天

H. SQL中,怎么取当月第一天。

如:给定的年月格式为20157,代表2015年7月。

取某月第一天:

SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)

结果:

I. sql如何取某年某月的第一天和最后一天

SELECT CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)--第一天

SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)))--最后一天

原理:第一天肯定是1号拉,最后一天是下个月第一天减一天。

本月第一天

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate()), 0)) as mouthlastdate

下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as mouthlastdate

下下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+2, 0)) as mouthlastdate

(9)sql日期第一天怎么获得扩展阅读

sqlserver 时间格式函数详细

--getdate 获取当前时间

select getdate()

--dateadd 原有时间加: 2013-02-17 13:20:16 此时间加12个月

select dateadd(MONTH,12,'2013-02-17 13:20:16') --返回:2014-02-17 13:20:16.000 (参数month可以改为 day,year等日期加相应的值)

--datediff 两个时间的差 (后面-前面=返回值)

select datediff(day,'2013-02-01','2013-02-18') --返回:17 (参数day可以改为 month,year等日期加相应的值)

--datepart 获取日期的某个部分整数

select DATEPART(month, '2013-2-17') --返回 2 (参数month可以改为 day,year等日期加相应的值)

--datename 获取指定部位的字符串

select datename(weekday, '2013-2-17') --返回 星期日 (参数weekday可以改为 day,year等日期加相应的值)

--day(), month(),year() 获取指定部位的字符串

select day('2013-2-15') --返回15

J. SQL如何获得本季度第一天,一年的第一天,本月的最后一天

你好,以下是获取年,季度,天日期的所有方式:
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECT CONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')

--B. 季度的最后一天(CASE判断法)
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
THEN '31'ELSE '30' END)

--C. 季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
1+DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)+'1')

--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')

--B. 月的最后一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')

--C. 月的最后一天(容易使用的错误方法)
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))

--4.指定日期所在周的任意一天
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)