最佳回答
0
shiroko Lv6 资深互助 发布于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(提问者)
- current_timestamp这个函数是获取当前时间的 怎么把他改成获取最大时间的呢
shiroko 回复 yaaa(提问者)
- 那你可以用第二个
yaaa(提问者) 回复 shiroko
- select YEAR,MONTH, YEAR||MONTH as time, from xx表 where YEAR||MONTH = to_char(current_timestamp, \\\'YYYYMM\\\') 我本来是这样写的 改完还是没有获取到最大时间的数据 应该怎么改改呀
shiroko 回复 yaaa(提问者)
- 用第二个呀,你不用子查询怎么查最大时间啊,系统时间是有参数的可以直接取,最大时间肯定得查表呀,没有什么可以直接替换系统参数的
取消
评论
最佳回答
0
CD20160914 Lv8 专家互助 发布于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(提问者)
- select YEAR,MONTH, YEAR||MONTH as time,
from xx表
where YEAR||MONTH = to_char(current_timestamp, \'YYYYMM\') 我本来是这样写的 按照你的改完还是没有获取到最大时间的数据
CD20160914 回复 yaaa(提问者)
- 你是什么数据库?月份是2位数还是1位数?就是假如数据库有2021 1 2021 5 那么你最后要取到20215这一条?
yaaa(提问者) 回复 CD20160914
- where YEAR||MONTH >= to_char( TIMESTAMP(current_timestamp)-5 MONTH, \'YYYYMM\') 想要把这条语句改成取表中最大月份并往前推5个月 共六个月的数据
CD20160914 回复 yaaa(提问者)
- 表中最大月份假如取出来是2022-02 你再限制它要大于等于当前日期的5个月后的数据。这个怎么可能取到呀。。。to_char( TIMESTAMP(current_timestamp)-5 MONTH, \\\'YYYYMM\\\') 取出来是2022-07了。。你表中2022-02怎么可能大于2022-07,那么永远是假呀
yaaa(提问者) 回复 CD20160914
- 往前推 是推到2021年的8月
取消
评论
最佳回答
0
Z4u3z1 Lv6 专家互助 发布于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)在最大年份中筛选出最大的月份
yaaa(提问者)
- where YEAR||MONTH >= to_char( TIMESTAMP(current_timestamp)-5 MONTH, \'YYYYMM\') 我想要把这条语句改成查询当前表最大时间的数据
取消
评论