to_date 如何与 sysdate 一起工作
How to_date function with sysdate
select TO_CHAR(sysdate, 'YEAR')-365 FROM DUAL;
我收到错误
'invalide number'
查看 TO_CHAR(sysdate-365, 'YEAR') 的结果,然后考虑是否可以将其转换为能够减去 365 的数值。
'twenty fourteen' - 365
您可能需要上一年的日期:
add_months(sysdate, -12)
或者如果您需要今天前 365 天的年份:
extract(year from sysdate - 365)
您的代码
select TO_CHAR(sysdate, 'YEAR')-365 FROM DUAL;
不起作用,因为您尝试对字符串值 TO_CHAR(sysdate, 'YEAR')
进行数学运算,这是不正确的。
这会起作用
select EXTRACT(YEAR from sysdate)-365 FROM DUAL;
结果
1650
但这没有意义,所以也许你需要这个
select EXTRACT(YEAR from sysdate)-1 FROM DUAL;
结果
2014
TO_CHAR(sysdate, 'YEAR')
它将DATE转换为字符串。对于日期算法,对日期本身进行计算。
例如,
SELECT TO_CHAR(SYSDATE - 365, 'YEAR') FROM DUAL;
select TO_CHAR(sysdate, 'YEAR')-365 FROM DUAL;
我收到错误
'invalide number'
查看 TO_CHAR(sysdate-365, 'YEAR') 的结果,然后考虑是否可以将其转换为能够减去 365 的数值。
'twenty fourteen' - 365
您可能需要上一年的日期:
add_months(sysdate, -12)
或者如果您需要今天前 365 天的年份:
extract(year from sysdate - 365)
您的代码
select TO_CHAR(sysdate, 'YEAR')-365 FROM DUAL;
不起作用,因为您尝试对字符串值 TO_CHAR(sysdate, 'YEAR')
进行数学运算,这是不正确的。
这会起作用
select EXTRACT(YEAR from sysdate)-365 FROM DUAL;
结果
1650
但这没有意义,所以也许你需要这个
select EXTRACT(YEAR from sysdate)-1 FROM DUAL;
结果
2014
TO_CHAR(sysdate, 'YEAR')
它将DATE转换为字符串。对于日期算法,对日期本身进行计算。
例如,
SELECT TO_CHAR(SYSDATE - 365, 'YEAR') FROM DUAL;