【问题标题】:Inserting Incremented Dates for SQL为 SQL 插入递增的日期
【发布时间】:2013-05-26 13:23:27
【问题描述】:

我正在为服务器更新登录和注销日志(我自己没有编写代码,而且我是 SQL 新手),并且存在一个问题,即轮班时间超过午夜不增加日期(它会说有人在 6 月 30 日晚上 11 点登录,然后在 6 月 30 日凌晨 3 点退出)。由于所有班次都少于 4 小时,我想如果签出时间早于签到时间,我可以将其设置为增加天数。

我不知道如何发送多个语句,所以我想我可以执行以下操作:

INSERT INTO Reports (MemberId,StartTime,EndTime) VALUES (6000,'2013-10-23 23:05:00',(SELECT DATE_ADD('2013-10-23 00:08:00',INTERVAL 1 DAY));

(我主要在 C++ 中执行此操作,因此日期/ID 编号的值在 C++ 程序中确定,然后打印为 ssUpdate 语句以提交到数据库。上面是一种示例声明我现在正在让 C++ 打印出来。不包含 DATE_ADD 函数的语句可以正常工作,所以我知道这不是问题。)

当我尝试执行此操作时,我收到“语法错误”语句。如果有任何可能的方法来避免它,我真的不希望重组 C 代码或提交多个 sql 语句,因为我不完全知道原始程序员如何集成 SQL 和 C++ 以及他如何向数据库提交语句。

对不起,如果这还不够信息,我以前从未在这里问过问题...

感谢您的帮助!

【问题讨论】:

    标签: sql datetime increment


    【解决方案1】:

    你可以试试

    INSERT INTO reports
        (memberId, starttime, endtime )
    SELECT 
        6000, 
        '2013-10-23 23:05:00', 
        DATE_ADD('2013-10-23 00:08:00', INTERVAL 1 DAY) 
    

    【讨论】:

    • 感谢您的回答!我尝试使用您建议的选择运算符,但我收到“INSERT INTO 语句中的语法错误”消息
    • 我想是的。都是通过microsoft access 2007完成的。很抱歉我对数据库工作了解不多。
    • 你可以尝试只做SELECT DATE_ADD('2013-10-23 00:08:00', INTERVAL 1 DAY) 看看是否没有错误吗?
    • 我收到此消息:[Microsoft][ODBC Microsoft Access Driver] 查询表达式 'DATE_ADD('2013-10-23 00:08:00', INTERVAL 1 DAY) 中的语法错误(缺少运算符) )'
    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2013-04-12
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多