【问题标题】:SQL add 2 hour to a column with type "date" [duplicate]SQL将2小时添加到类型为“日期”的列[重复]
【发布时间】:2017-03-20 10:14:45
【问题描述】:

我在Select 语句中有一列包含日期,我想在Select 的每一行中添加 2 小时。

有什么建议吗?

【问题讨论】:

  • 你好像在问SQL,你能edit你的帖子并标记DBMS吗?
  • 我提到的 DBMS 类似于“SQL Server”、“MS SQL”、“Oracle”、“MySQL”...等
  • 你能确认你正在使用 sql-server 吗?从您在 Aravind 的回答中留下的评论来看,您似乎正在使用 Oracle
  • 我使用 Oracle .....

标签: sql oracle


【解决方案1】:

我更喜欢为此使用interval

select deliverydate + interval '2' hour
from the_table;

以上是标准 SQL,在 Oracle 中运行良好。

手册中的更多详细信息:https://docs.oracle.com/database/121/SQLRF/sql_elements003.htm#SQLRF00221

【讨论】:

    【解决方案2】:

    MS Access 更新查询:

    UPDATE Table1 AS t2 INNER JOIN Table1 ON t2.ID = Table1.ID 
    SET Table1.DeliveryDate = DateAdd("h",2,[t2].[DeliveryDate]);
    

    Sql Server 更新查询:

    UPDATE Table1 AS t2 INNER JOIN Table1 ON t2.ID = Table1.ID 
    SET Table1.DeliveryDate = DateAdd("hh",2,[t2].[DeliveryDate]);
    

    MS Access 选择查询:

    SELECT DateAdd("h",2,Table1.DeliveryDate) AS NewDateTime
    FROM Table1;
    

    Sql Server 选择查询:

    SELECT DateAdd("hh",2,Table1.DeliveryDate) AS NewDateTime
    FROM Table1;
    

    Oracle 选择查询:

    SELECT (Table1.DeliveryDate + 2/24) AS NewDateTime
    FROM Table1;
    

    【讨论】:

    • 我不想更新我的表格
    • 查看我的更新答案。您只需要创建一个计算列:在此示例中:DateAdd("hh",2,[OldDate]) AS NewDateTime NewDateTime 是比 [OldDate] 字段多 2 小时的字段的字段别名/名称。您可能需要创建一些额外的逻辑来处理 Null。
    • 它对我不起作用,我收到错误,“DateAdd”:无效标识符
    • 我没有看到您使用的是 Oracle。我更新了我的答案。
    • 谢谢,它也适用于您的最后一个查询。但不幸的是,我不能接受 2 个答案
    【解决方案3】:

    CREATE TABLE testtime (my_date datetime);
      INSERT INTo testtime VALUES (GETDATE());
    

    这会打印实际日期

      select * from testtime
    

    这会打印时间 + 2 小时

      select DATEADD(HOUR, 2, my_date) from testtime
    

    【讨论】:

    • 如果我这样做会改变数据库中的数据,我只想在select中添加 2 H
    • 是的,这是一个错误。对此感到抱歉。请参考该链接以获取您的答案...
    • "dateadd": 标识符无效
    • @Marius:试试这个对我有用。
    • 不幸的是不适合我,我不知道为什么...我的日期列是类型date我无法制作datetime
    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2020-01-31
    • 1970-01-01
    相关资源
    最近更新 更多