2013-02-25 55 views
0

这个查询:Oracle查询的日期

SELECT 
Min(DB_SAM.T_CALENDAR."Date") 
FROM 
DB_SAM.T_CALENDAR 
WHERE 
DB_SAM.T_CALENDAR."Week" = 8 

回报13-02-18 00:00:00

此查询:

SELECT 
Min(DB_SAM.T_CALENDAR."Date") 
FROM 
DB_SAM.T_CALENDAR 
WHERE 
DB_SAM.T_CALENDAR."Week" = 9 

回报13-02-25 00: 00:00

以下使用前2个查询,当然DB_SAM.T_MELDUNGEN不为空。 那么为什么这返回0行?

SELECT 
... 
... 
FROM 
DB_SAM.T_MELDUNGEN 
INNER JOIN DB_SAM.T_ZELLEN ON DB_SAM.T_MELDUNGEN."Ort" = DB_SAM.T_ZELLEN."Betriebsstelle" 
WHERE 
DB_SAM.T_MELDUNGEN."Stg Beginn" >= (SELECT Min(DB_SAM.T_CALENDAR."Date") FROM DB_SAM.T_CALENDAR WHERE DB_SAM.T_CALENDAR."Week" = 8) AND 
DB_SAM.T_MELDUNGEN."Stg Beginn" < (SELECT Min(DB_SAM.T_CALENDAR."Date") FROM DB_SAM.T_CALENDAR WHERE DB_SAM.T_CALENDAR."Week" = 9) 

btw。这些条件下工作:

WHERE 
DB_SAM.T_MELDUNGEN."Stg Beginn" >= TO_DATE('02/18/2013','MM/DD/YYYY') AND 
DB_SAM.T_MELDUNGEN."Stg Beginn" < TO_DATE('02/25/2013','MM/DD/YYYY') 
+0

,因为表DB_SAM.T_MELDUNGEN是空的?因为你检查DB_SAM.T_CALENDAR。“周”= 6而不是8?因为你错过了信息?你可以显示样本数据或者删除一个条件来检查它是什么 – JaMaBing 2013-02-25 13:39:40

+0

你提出查询A然后问为什么查询B做了一个完全不同的事情。为什么?因为它不是同一个查询。 – Rene 2013-02-25 13:53:34

+0

“SELECT to_char(Min(DB_SAM.T_CALENDAR。”Date“),'MM/DD/YYYY')FROM DB_SAM.T_CALENDAR WHERE DB_SAM.T_CALENDAR。”Week“= 8'表示年份为2013年或1913年例);第9周一样? – 2013-02-25 16:50:30

回答

0

SELECT to_char(Min(DB_SAM.T_CALENDAR."Date"), 'MM/DD/YYYY') FROM DB_SAM.T_CALENDAR WHERE DB_SAM.T_CALENDAR."Week" = 8显示年为0013