检索SYSDATE时如何查询DAY的值?

时间:2016-06-27 21:00:19

标签: sql

根据我的问题,你可以得出结论我是NEWBE,但请知道我搜索了各种网站(问汤姆,甲骨文,BC计算等)和Stack Overflow以获得答案,我不知道得到我需要的东西;哪个是询问SYSDATE列的DAY部分的能力:

我使用语句

检索SYSDATE月和日
SELECT TO_CHAR (SYSDATE, 'MM-DD') 
  FROM DUAL;  

结果是,例如,06-27。现在我想使用DD值从另一个表中进行SELECT。例如:

SELECT TO_CHAR (SYSDATE, 'MM-DD') 
  FROM DUAL
 WHERE DD = '15'
       SELECT * 
         FROM MY_PERSON_TABLE;

但是,DD在DUAL上不是有效的列名,因此我不确定如何在查询中使用该日期。我尝试在WHEN中使用CASE子句,但我想我更加困惑。

2 个答案:

答案 0 :(得分:0)

当天你可以使用DD

SELECT TO_CHAR(SYSDATE, 'DD') FROM DUAL

并且可以从任何表中

SELECT TO_CHAR(SYSDATE, 'DD') FROM MY_PERSON_TABLE

这种情况下的DD不是列,而是日期格式化程序的参数..所以你可以在每个日期列中使用..或系统日期

例如:

SELECT TO_CHAR(SYSDATE, 'DD') FROM MY_PERSON_TABLE
WHERE TO_CHAR(my_column_date , 'DD') = '21'

答案 1 :(得分:0)

如果你想把这一天当作而不是字符串,那么最简单的方法就是使用EXTRACT function

SELECT EXTRACT(day FROM SYSDATE)
FROM DUAL

选择日期作为数字可以使某些操作更容易,例如与现有数据进行比较(因为您不必担心使用零或空格填充等)。