【问题标题】:Problems with SQL syntax DATEADDSQL 语法 DATEADD 的问题
【发布时间】:2012-11-28 22:21:17
【问题描述】:
SELECT hd.holiday_code, 
       hd.holiday_duration, 
       hdep.departure_date                                    AS 'Start Date', 
       Dateadd(day, hd.holiday_duration, hdep.departure_date) AS 'End Date' 
FROM   holiday_details hd 
       INNER JOIN holiday_departure hdep 
               ON hd.holiday_code = hdep.holiday_code

好吧,我一直试图让这个特定的代码 ^ 工作,但我无法弄清楚 dateadd 语法。从我对谷歌的研究来看,它看起来很正确,但我总是收到错误 ORA-00923: FROM keyword not found where expected

这通常是我的一些小错误造成的,但我找了大约 20 分钟后找不到它。谁能指出可能正盯着我的错误

【问题讨论】:

  • Dateadd 是 TSQL 而不是 Oracle。
  • 查看手册以获取日期时间函数列表:docs.oracle.com/cd/E11882_01/server.112/e26088/…
  • 哇,我把我的语言弄糊涂了。今天?
  • 据我了解,ORACLE 使用 INTERVAL 表示法。 hdep.departure_date + INTERVAL hd.holiday_duration 'DAY'(我在手机上用谷歌解决了这个问题,输入比找到要花更长的时间。)

标签: sql oracle dateadd


【解决方案1】:

只需将天数与数值相加即可。您的语法的另一个问题是“开始日期”和“结束日期”;用双引号替换单引号。将您的查询更改为以下内容:

SELECT hd.holiday_code, 
       hd.holiday_duration, 
       hdep.departure_date AS "Start Date", 
       hdep.departure_date + hd.holiday_duration AS "End Date" 
FROM   holiday_details hd 
       INNER JOIN holiday_departure hdep 
               ON hd.holiday_code = hdep.holiday_code

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多