在Oracle SQL中,将字符串日期列与今天的日期进行比较。仅考虑月和日

时间:2017-05-11 18:59:34

标签: sql oracle

我有一个用户表,其中生日列是字符串类型,日期为 pattern =' 19910511' (YYYYMMDD)即可。如何仅使用月和日将此列与今天的日期进行比较。问题是生日列的模式。 我尝试过这样的事情:

SELECT UDATANASCIMENTO as birthDate FROM USERS WHERE to_char(UDATANASCIMENTO, 'MMDD') = to_char(sysdate, 'MMDD')

但它不起作用,因为格式化是问题所在。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

...
where substr(udatanascimento, 5) = to_char(sysdate, 'mmdd')

左侧提取从“birthdate”列值的第五个字符开始的子字符串;它是一个字符串到字符串的操作,因此to_char()与它无关。当然,您需要to_char()上的sysdate