创建要在SELECT语句中使用的日期变量

时间:2015-09-08 16:12:17

标签: sql oracle date declare

嗨,我真的很感激一些帮助。我想在日期格式中将2个变量声明为date1 = 31-AUG-15date2 = 01-SEP-15,并在SELECT语句中使用它,因此我不需要在所有地方输入日期当我需要更改日期。这可能吗?

SELECT TABLE1.TRANSACTION_ID, TABLE1.AMOUNT, TABLE1.MATURITY, TABLE1.TYPE,
TABLE1.EFFECTIVE_DATE, TABLE1.SETTLEMENT_DATE, TABLE2.TRANSACTION_DATE 
FROM TABLE1 
LEFT JOIN TABLE2 ON TABLE1.TRANSACTION_ID = TABLE2.TRANSACTION_ID AND TABLE2.TRANSACTION_DATE = date2
WHERE TABLE1.MATURITY > date1
AND TABLE1.EFFECTIVE_DATE > date1
AND TABLE1.SETTLEMENT_DATE = date1

2 个答案:

答案 0 :(得分:0)

您没有指定您正在使用的SQL类型(MSSQL,MySQL,Oracle SQL,...)。 我可以帮助您使用Microsoft SQL Server的代码段。

DECLARE @date1  DATETIME,
        @date2  DATETIME

SET @date1 := '08-31-15'
SET @date2 := '09-01-15'

SELECT TABLE1.TRANSACTION_ID, TABLE1.AMOUNT, TABLE1.MATURITY,
       TABLE1.TYPE, TABLE1.EFFECTIVE_DATE, TABLE1.SETTLEMENT_DATE, TABLE2.TRANSACTION_DATE 
FROM TABLE1 
LEFT JOIN TABLE2 ON TABLE1.TRANSACTION_ID = TABLE2.TRANSACTION_ID AND TABLE2.TRANSACTION_DATE = date2
WHERE TABLE1.MATURITY > date1
      AND TABLE1.EFFECTIVE_DATE > date1
      AND TABLE1.SETTLEMENT_DATE = date1

我希望这会有所帮助。 我使用了这个问题的答案:SQL How to correctly set a date variable value and use it? 作为参考。

答案 1 :(得分:0)

根据documentation for Oracle,您应该使用DECLARE声明。

This answer将提供有关日期的更多详细信息:

DECLARE 
    date1 DATE := to_date('03/11/2011', 'dd/mm/yyyy');