Ⅰ sql如何获取日期月份的第一天
如:给定的年月格式为20157,代表2015年7月。
取某月第一天:
SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)
结果:
Ⅱ sql 语句选择日期最早的
您好,这样的:
CREATE TABLE AAA (姓名 C(10),性别 C(2),培训时间 D)
INSERT INTO AAA VALUES ("ABC","男",{^1999.01.02})
INSERT INTO AAA VALUES ("ACD","男",{^2001.01.02})
INSERT INTO AAA VALUES ("ABF","男",{^1999.11.02})
INSERT INTO AAA VALUES ("ABC","男",{^2000.01.02})
INSERT INTO AAA VALUES ("ABF","男",{^1999.09.02})
INSERT INTO AAA VALUES ("ACD","男",{^1999.01.02})
SELECT 姓名,性别 ,MIN(培训时间) AS 培训时间 FROM AAA GROUP BY 姓名,性别
select 姓名,性别,min(培训时间) as 培训时间 from 表 group by 姓名,性别
-- or --
select 姓名,性别,min(培训时间) as 培训时间 from 表 group by 姓名,性别 order by 姓名
-- or --
select 姓名,性别,min(培训时间) as 培训时间 from 表 group by 姓名,性别 order by 3
Ⅲ SQL如何实现从会计期间中查询出四个连续的日期范围,第一个期间取当前日期所属的期间,并写入新数据表
创建一个临时表,将会存储连续日期的记录
CREATE TABLE #temp (IDD VARCHAR(10),SDATE DATETIME)
DECLARE @sD DATETIME --开始日期
DECLARE @eD DATETIME --结束日期
--在记录中,找出开始与结束日期
SELECT @sD = MIN([SDATE]), @eD = MAX([SDATE]) FROM [TT]
DECLARE @N INT = 0 --宣告一个变量,存储累记录数
Ⅳ 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
(4)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
Ⅳ SQL 如何得到本月第一个星期天的日期
--第一个星期天
declare @a datetime
set @a='2022-5-25'
SELECT case when dateadd(dd,-day(@a)+1,@a)<DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,-day(@a)+1,@a)), 0)
then DATEADD(DD,-1,DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,-day(@a)+1,@a)),0))
else DATEADD(DD,6,DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,-day(@a)+1,@a)),0)) end
如果是第二个星期天,就把6改成:6+7=13,以此类推。
Ⅵ sql 获取当前月的第一天
DATEDIFF(mm,0,getdate())用来计算出“0”和当前日期所相差的月份数,比如说相差10个月。
DATEADD (mm,x,0)
在0日期的基础上,加上x个月。
那么就相当于把去掉了日期,只留下了月份,也就是当前月份了。没有日期,也就是第一天的0点了。
Ⅶ sql怎么取到达任务的第一个时间
select a.销售员,a.任务,min(b.时间) as 第一次到达任务的时间
from RenWu a
left join (select 销售员,时间,sum(金额) over (partition by 销售员 order by 时间) as 累计金额,
from JiaoYi
) on a.销售员=b.销售员 and a.任务<=b.累计金额
group by a.销售员,a.任务
Ⅷ sql中取时间最早对应的记录
在数据库应用开发中,我们经常需要面对复杂的SQL式计算,固定分组就是其中一种。固定分组的分组依据不在待分组的数据中,而是来自于外部,比如另一张表、外部参数、条件列表等。对于特定类型的固定分组,用SQL实现还算简单(比如:分组依据来自另一张表,且对分组次序没有要求),但对于比较通用、灵活的要求,实现起来就困难了。
而对于SPL来说,完全可以轻松解决固定分组中的各类难题,下面就用几个例子来说明。
表sales存储着订单记录,其中CLIENT列是客户名,AMOUNT列是订单金额。表sales的部分数据如下:
.png
要求将sales按照“潜力客户列表”进行分组,并对各组的AMOUNT列汇总求和。这里的“潜力客户”就是一种固定分组,可能来自于外部不同的条件设定:
案例一:潜力客户列表来自于另外一张表potential的Std字段,只有四条记录,依次为:ANATR、BERGS、LACOR、ZTOZ,并且客户ZTOZ不在sales表中。在输出结果时,要求按照上述记录顺序来分组汇总。
如果我们对分组的顺序没有要求,那么SQL可以较简单地实现本案例:
select potential.std as client, sum(sales.amount) as amount from potential left join client on potential.std=sales.client group by potential.std。
但如果像本案例中要求的那样,按照特定的顺序来分组,那么用SQL实现的话就必须制造一个用于排序的字段,最后还要用子查询去掉这个字段。而用SPL实现则会简单很多
Ⅸ SQL 如何得到本月第一个星期天的日期
给你一个思路:
首先通过getdate()获取当前年月1号的星期,
daclare @NowWeekDay nvarchar(20)
set @NowWeekDay=(
select
datename(dw,datename(year,getdate())+datename(month,getdate())+'01'))
然后再判断即可,
如下:直接执行就好
declare @NowWeekDay nvarchar(20)
set @NowWeekDay=(
select
datename(dw,datename(year,getdate())+datename(month,getdate())+'01'))
select
case @NowWeekDay
when '星期日' then datename(year,getdate())+datename(month,getdate())+'01'
when '星期一' then datename(year,getdate())+datename(month,getdate())+'07'
when '星期二' then datename(year,getdate())+datename(month,getdate())+'06'
when '星期三' then datename(year,getdate())+datename(month,getdate())+'05'
when '星期四' then datename(year,getdate())+datename(month,getdate())+'04'
when '星期五' then datename(year,getdate())+datename(month,getdate())+'03'
when '星期六' then datename(year,getdate())+datename(month,getdate())+'02'
end
Ⅹ SQL中,怎么取当月第一天。
如:给定的年月格式为20157,代表2015年7月。
取某月第一天:
SELECTCAST((LEFT('20157',4)+'-'+SUBSTRING('20157',5,LEN('20157'))+'-'+'01')ASDATETIME)
结果: