我想匹配不同表中的列,使用SYSDATE
将它们匹配到今天的日期。输出实际上是在所有行上用当天日期填充日期列,而不是实际上具有今天日期的一行。Oracle Sql匹配日期列到sysdate错误
SELECT building.building_code,
building.building_name,
room_booking.booking_date
FROM building,
room_booking,
dual
WHERE to_date(booking_date) = trunc(sysdate)
输出为:
BUILDING_CODE BUILDING_NAME BOOKING_DATE
------------- --------------- ------------
A ARCADIA <17-mar-13>
B BELIZE <17-mar-13>
C CAMDEN <17-mar-13>
D DENVER <17-mar-13>
E EXETER <17-mar-13>
F FORT PORTAL <17-mar-13>
G GRAMPIAN <17-mar-13>
H HELVITICA <17-mar-13>
I INVICTA <17-mar-13>
J JULIET <17-mar-13>
10 rows selected
应该有只有一个结果行,因为只有1与今天的变化更新了一行。我哪里错了?
您需要两个表上的连接条件(并且不需要'dual')。 – Mat 2013-03-17 14:24:27
感谢垫 - 双现在删除 – 2013-03-17 15:07:29
为什么你有'TO_DATE'在'booking_date'附近?它是一个字符串吗? – 2013-03-18 06:20:47