使用mysql语句获取表中最大时间的值条件语句应该怎么写

image.png

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

select * from xx表 where YEAR||MONTH = to_char(current_timestamp, 'YYYYMM')

order by YEAR||MONTH DESC

limit 1

--

select * from xx表 where YEAR||MONTH =(select max(YEAR||MONTH)  from xx表)

  • yaaa yaaa(提问者) current_timestamp这个函数是获取当前时间的 怎么把他改成获取最大时间的呢
    2022-02-09 15:06 
  • shiroko shiroko 回复 yaaa(提问者) 那你可以用第二个
    2022-02-09 15:08 
  • yaaa yaaa(提问者) 回复 shiroko select YEAR,MONTH, YEAR||MONTH as time, from xx表 where YEAR||MONTH = to_char(current_timestamp, \\\'YYYYMM\\\') 我本来是这样写的 改完还是没有获取到最大时间的数据 应该怎么改改呀
    2022-02-09 15:13 
  • shiroko shiroko 回复 yaaa(提问者) 用第二个呀,你不用子查询怎么查最大时间啊,系统时间是有参数的可以直接取,最大时间肯定得查表呀,没有什么可以直接替换系统参数的
    2022-02-09 15:29 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-2-9 15:01(编辑于 2022-2-9 18:00)

where YEAR||MONTH >=select replace(concat(max(year), to_char(max(month)-5,'09')),'-') from xx表

  • yaaa yaaa(提问者) select YEAR,MONTH, YEAR||MONTH as time, from xx表 where YEAR||MONTH = to_char(current_timestamp, \'YYYYMM\') 我本来是这样写的 按照你的改完还是没有获取到最大时间的数据
    2022-02-09 15:11 
  • CD20160914 CD20160914 回复 yaaa(提问者) 你是什么数据库?月份是2位数还是1位数?就是假如数据库有2021 1 2021 5 那么你最后要取到20215这一条?
    2022-02-09 16:35 
  • yaaa yaaa(提问者) 回复 CD20160914 where YEAR||MONTH >= to_char( TIMESTAMP(current_timestamp)-5 MONTH, \'YYYYMM\') 想要把这条语句改成取表中最大月份并往前推5个月 共六个月的数据
    2022-02-09 16:51 
  • CD20160914 CD20160914 回复 yaaa(提问者) 表中最大月份假如取出来是2022-02 你再限制它要大于等于当前日期的5个月后的数据。这个怎么可能取到呀。。。to_char( TIMESTAMP(current_timestamp)-5 MONTH, \\\'YYYYMM\\\') 取出来是2022-07了。。你表中2022-02怎么可能大于2022-07,那么永远是假呀
    2022-02-09 16:53 
  • yaaa yaaa(提问者) 回复 CD20160914 往前推 是推到2021年的8月
    2022-02-09 16:57 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-2-9 15:03

不熟悉试试

select max(YEAR||MONTH) from xx表 where YEAR||MONTH = to_char(current_timestamp, 'YYYYMM')

或者

SELECT MAX(T.NEW_TIME) FROM (

select (CASE WHEN YEAR>MONTH THEN YEAR ELSE MONTH) AS NEW_TIME  from xx表 where YEAR||MONTH = to_char(current_timestamp, 'YYYYMM')

) T

最佳回答
0
墨残烛Lv5初级互助
发布于2022-2-9 16:00(编辑于 2022-2-9 16:03)

SELECT

`Code`,

`Year`as 年,

max( `Month` )as 月 

FROM test AS a

RIGHT JOIN ( SELECT max( `YEAR` ) AS 最大年份 FROM test ) AS b ON a.`Year` = b.`最大年份`

//right join中实现筛选出最大年份,然后右关联后再用max(Month)在最大年份中筛选出最大的月份

image.png

image.png

  • yaaa yaaa(提问者) where YEAR||MONTH >= to_char( TIMESTAMP(current_timestamp)-5 MONTH, \'YYYYMM\') 我想要把这条语句改成查询当前表最大时间的数据
    2022-02-09 16:18 
  • 4关注人数
  • 520浏览人数
  • 最后回答于:2022-2-9 18:00
    请选择关闭问题的原因
    确定 取消
    返回顶部