oracle 获取日期

oracle 获取日期,第1张

oracle中最简单获取日期的方式是通过查询sysdate来获取。

语句如下:

select sysdate from dual;

结果:

如果只获取日期部分:

select to_char(sysdate,'yyyy-mm-dd') from dual;

结果:

ALTER session SET nls_date_format='yyyy-mm-dd';

with mycte AS (

  SELECT TRUNC( SYSDATE + 1, 'Q' )  AS  TopDay FROM DUAL

)

SELECT TopDay -1  AS Result                 FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,3) -1 AS Result    FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,6) -1  AS Result   FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,9) -1 AS Result    FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,12) -1  AS Result  FROM mycte;

RESULT

----------

2013-03-31

2013-06-30

2013-09-30

2013-12-31

2014-03-31

-- 假如今天是 季度的最后一天(例如 2013-06-30 )

with mycte AS (

  SELECT TRUNC(  TO_DATE('20130630', 'YYYYMMDD') + 1, 'Q' )  AS  TopDay FROM DUAL

)

SELECT TopDay -1  AS Result                 FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,3) -1 AS Result    FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,6) -1  AS Result   FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,9) -1 AS Result    FROM mycte UNION ALL

SELECT ADD_MONTHS(TopDay,12) -1  AS Result  FROM mycte;

RESULT

----------

2013-06-30

2013-09-30

2013-12-31

2014-03-31

2014-06-30

select ADD_MONTHS(DATE '2017-1-1',03) FROM dual;

select ADD_MONTHS(DATE '2017-1-1',13) FROM dual;

select ADD_MONTHS(DATE '2017-1-1',23) FROM dual;

select ADD_MONTHS(DATE '2017-1-1',33) FROM dual;

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、之后在该界面中,点击左上角“新建查询”选项。

3、接着在该界面中,输入获取今年的上一年和下一年(去年与明年)的sql语句“select year(getdate())-1 AS "去年" , year(getdate())+1 AS "明年"”。

4、然后在该界面中,点击左上方“执行”按钮。

5、最后在该界面中,显示获取今年的上一年和下一年(去年与明年)成功。

假设排序的字段名字为field1降序, table name: tab

SELECT field1, field2, field3 fieldn

FROM (SELECT field1, field2, field3fieldn, ROW_NUMBER() OVER(ORDER BY field1 DESC) AS RK ) FROM tab ) t

WHERE rk = 1

00904是说列名不正确,仔细看了下,AS RK后面多了一个括号,下面这样就可以了

SELECT field1, field2, field3 fieldn

FROM (SELECT field1, field2, field3fieldn,

ROW_NUMBER() OVER(ORDER BY field1 DESC) AS RK

FROM tab

where field1=表名字段名) t

WHERE rk = 1

我给你改一下吧,你写的那个效率很低的

SELECT t1a, t1b, t2field1, t2field2, t2field3t2fieldn

FROM lkk t1,

(SELECT field1, field2, field3fieldn,

ROW_NUMBER() OVER(ORDER BY field1 DESC) AS RK

FROM tab) t

WHERE tfield1 = t1a

AND trk = 1

select distinct to_char(dt, 'yyyy-mm-dd') as years,to_char(dt, 'iw') as week

from (select (to_date('2013-4-15', 'yyyy-mm-dd') + rownum - 1) dtfrom dual connect by rownum <= to_date('2013-7-15', 'yyyy-mm-dd') -to_date('2013-4-15', 'yyyy-mm-dd'))

group by to_char(dt, 'iw')

ORDER BY years,week

以上就是关于oracle 获取日期全部的内容,包括:oracle 获取日期、oracle sql 最近5个季度的最后一天、oracle数据库怎么用sql或者pl/sql描述季度初,求具体的语句!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9316063.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存