当前位置:首页 » 编程语言 » sql取本月第一天

sql取本月第一天

发布时间: 2024-08-10 04:59:47

A. 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

(1)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

B. 用 oracle 写一个 sql语句 查询上一个月的最大日期,

首先获取本月第一点trunc(sysdate,'mm');这个是获取本月第一天的时间,然后-1就是上个月最后一天,然后输出日期to_char(date,'DD');
最后SQL
select to_char(trunc(sysdate,'mm')-1,'DD') from al;

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

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

D. sql 配置变量为当月第一天日期

可以利用sql函数实现,首先获取传递过来的日期中的天数,然后减去(天数-1),即可得到第一天日期。
例如mysql:DATE_SUB($[yyyy-mm-dd], INTERVAL (DAY($[yyyy-mm-dd]) -1) DAY)
大体思路是这样的,不同的数据库sql日期函数略有不同,自己调试下吧。

E. SQL如何计算指定日期当前月

给出的日期求当月一号的方法你的写法应该是比较简单的方法了,不过感觉你给转换成char型不太好,最好是varchar型的,另外你的写法可以简写成
select convert(varchar(6),cast('2006-3-8' as datetime),112)+'01'
这样得到的'20060301'可以直接作为日期来使用,不必再转换。

得到之前几个个月的第一天可以直接用dateadd来实现
比如得到3月1日的上一月1日,也就是2月1日的方法是
select dateadd(month,-1,convert(varchar(6),cast('2006-3-8' as datetime),112)+'01')

F. 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)

G. 如何将SQL中的日期字段的值改成当月的第一天呀

这样:
update 表
set 日期字段=dateadd(dd,-day(日期字段)+1,日期字段)

原理是,原日期减去原日期在当月所处的天数然后再加一天就是原日期当月1日的日期。

热点内容
java上传文件到服务器 发布:2024-11-25 20:52:47 浏览:740
轴加工编程 发布:2024-11-25 20:52:12 浏览:411
手机的媒体存储 发布:2024-11-25 20:29:42 浏览:264
安卓如何关闭手机桌面 发布:2024-11-25 20:24:37 浏览:700
脚本也违法吗 发布:2024-11-25 20:24:24 浏览:304
phpeol 发布:2024-11-25 20:16:01 浏览:92
您所访问的页面升级 发布:2024-11-25 20:00:56 浏览:597
快手编程师 发布:2024-11-25 20:00:55 浏览:148
androidadt下载最新 发布:2024-11-25 19:47:29 浏览:353
我的世界如何强制获得服务器管理员权限 发布:2024-11-25 19:39:13 浏览:604