sqlserver取数,年月日时分秒数据,如何光取当月的最后一天数据

sql server取数,年月日时分秒数据,如何光取当月的最后一天数据

0035705 发布于 2022-4-26 17:15
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-4-26 17:16(编辑于 2022-4-26 17:26)

用max() 函数

WITH T as (

SELECT 'A' [A],'2022-04-01 14:04:55' [TIME_]

UNION ALL

SELECT 'A' [A],'2022-04-01 15:04:55' [TIME_]

UNION ALL

SELECT 'A' [A],'2022-04-01 17:04:55' [TIME_]

UNION ALL

SELECT 'B' [A],'2022-04-01 14:04:55' [TIME_]

UNION ALL

SELECT 'B' [A],'2022-04-01 15:04:55' [TIME_]

UNION ALL

SELECT 'C' [A],'2022-04-01 17:04:55' [TIME_]

)

SELECT A,MAX(TIME_) [TIME_] FROM T GROUP BY A

image.png

逐月max

WITH T as (

SELECT 'A' [A],'2022-04-01 14:04:55' [TIME_]

UNION ALL

SELECT 'A' [A],'2022-04-01 15:04:55' [TIME_]

UNION ALL

SELECT 'A' [A],'2022-05-01 17:04:55' [TIME_]

UNION ALL

SELECT 'A' [A],'2022-05-01 14:04:55' [TIME_]

UNION ALL

SELECT 'A' [A],'2022-06-01 15:04:55' [TIME_]

UNION ALL

SELECT 'A' [A],'2022-06-01 17:04:55' [TIME_]

)

SELECT A,CONVERT(NVARCHAR(10),TIME_,120) FROM T GROUP BY A,CONVERT(NVARCHAR(10),TIME_,120)

image.png

  • 0035705 0035705(提问者) 要的是最后一天,你这第一天?
    2022-04-26 17:54 
  • Z4u3z1 Z4u3z1 回复 0035705(提问者) 知道MAX()的作用吧。如果的需求是:只要月最后一天(若无则不管)那才是另外的SQL
    2022-04-27 08:55 
最佳回答
0
墨白哦Lv6见习互助
发布于2022-4-26 17:21

你先把年月日时分秒数据 处理成  年月日  用convert(date,日期);

然后用max求最大值就行;

如果是每天都有数,且不会求本月的数据时。直接用函数获取当月周后一天的日期

dateadd(month, datediff(month, 0, dateadd(month, 1, getdate())), -1)

最佳回答
0
shinger@126.comLv2见习互助
发布于2022-4-26 18:14

select  dateadd(month,datediff(month,0,getdate()),0),--当月第一天

        dateadd(month,datediff(month,0,getdate())+1,0)-1,  --当月最后一天开始时间

        dateadd(ms,-3,dateadd(month,datediff(month,0,getdate())+1,0)) --当月最后一天结束时间

使用条件 where 时间 between 当月最后一天开始时间 and 最后一天结束时间  就能取当月最后一天的数据了

  • 4关注人数
  • 842浏览人数
  • 最后回答于:2022-4-26 18:14
    请选择关闭问题的原因
    确定 取消
    返回顶部