[英]how to get the year from the max date in oracle sql
我正在嘗試從以下查詢中獲取 yyyy,如果我嘗試使用
詢問
WITH last_startdate
AS (SELECT owner,
package_name,
Max(start_date) MAX_START_DATE,
to_date(max(start_date),'YYYY') as max_start_date_yr
FROM (SELECT DISTINCT owner,
object_name AS PACKAGE_NAME
FROM dba_procedures
) P
JOIN SCHEMA.table_name A /*AUDITING TABLE*/
ON P.package_name = A.task_name
GROUP BY P.owner,
P.package_name)
SELECT *
FROM last_startdate
ORDER BY 3 DESC
錯誤
ORA-01830: date format picture ends before converting entire input string
01830. 00000 - "date format picture ends before converting entire input string"
*Cause:
*Action:
預期結果
OWNER PACKAGE_NAME MAX_START_DATE MAX_START_DATE_YR
STAGE PA_AB_CDS 19.02.2021 2021
EDW PA_BX_BCS 09.12.2020 2020
MART PA_WQ_AFD 12.08.2019 2019
CODE PA_WQ_IOD 23.05.2016 2016
有什么建議可以得到預期的結果嗎?
我想start_date
是一個DATE
。 所以max(start_date)
也是一個日期。
那你為什么要申請to_date
呢? 將日期轉換為日期? 這是沒有意義的。 你我想要to_char
代替
to_char(max(start_date),'YYYY') as max_start_date_yr
這會給你一個字符串的年份。 或者只使用EXTRACT
來獲取數字年份:
extract(year from max(start_date)) as max_start_date_yr
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.