Sql 如何计算以年和月为单位的时间段
我希望能够得到客户注册的时间,到目前为止,我只得到了月份,但我希望得到年份和月份。可能有一个函数我没有使用,它可以计算出几年和几个月,而不仅仅是几个月。 谢谢Sql 如何计算以年和月为单位的时间段,sql,oracle,Sql,Oracle,我希望能够得到客户注册的时间,到目前为止,我只得到了月份,但我希望得到年份和月份。可能有一个函数我没有使用,它可以计算出几年和几个月,而不仅仅是几个月。 谢谢 除以12。但无需将sysdate转换为日期: SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE(REGISTER_DATE, 'DD-MON-YYYY')) / 12 AS "Registered for" FROM A3_CUSTOMER WHERE CUSTOMER_ID = 'C991
除以12。但无需将
sysdate
转换为日期:
SELECT MONTHS_BETWEEN(SYSDATE, TO_DATE(REGISTER_DATE, 'DD-MON-YYYY')) / 12 AS "Registered for"
FROM A3_CUSTOMER
WHERE CUSTOMER_ID = 'C99166';
这返回十进制年份。要转换为年和月:
SELECT (FLOOR(MONTHS_BETWEEN(SYSDATE, TO_DATE(REGISTER_DATE, 'DD-MON-YYYY')) / 12) || ' Years and ' ||
MOD(FLOOR(MONTHS_BETWEEN(SYSDATE, TO_DATE(REGISTER_DATE, 'DD-MON-YYYY')), 12) || ' Months'
) AS "Registered for"
FROM A3_CUSTOMER
WHERE CUSTOMER_ID = 'C99166';
如果register\u date
存储为日期(应该是),则也不要转换该日期:
SELECT MONTHS_BETWEEN(SYSDATE, REGISTER_DATE) / 12 AS "Registered for"
FROM A3_CUSTOMER
WHERE CUSTOMER_ID = 'C99166';
您可以使用以下时间间隔的月份:
Trunc(MONTHS_BETWEEN(SYSDATE, REGISTER_DATE)/ 12) as year,
Trunc(Mod(MONTHS_BETWEEN(SYSDATE, REGISTER_DATE), 12)) as month
注册日期的数据类型是什么?
Trunc(MONTHS_BETWEEN(SYSDATE, REGISTER_DATE)/ 12) as year,
Trunc(Mod(MONTHS_BETWEEN(SYSDATE, REGISTER_DATE), 12)) as month