【问题标题】:ASP Classic and MSAccess DatesASP Classic 和 MSAccess 日期
【发布时间】:2012-04-15 06:11:47
【问题描述】:

我之前已经从 ASP 将日期输入到 Access 中,并且我使用相同的代码...但无论如何它都不会接受查询。我已经工作了一整天了,也许我只是累了,但是有人可以帮我看看这个吗?

这是代码生成的示例查询:

INSERT INTO COMMENTS (FID,AUTHOR,DATE,COMMENT) VALUES ("6","John Doe",#4/15/2012#,"test comment") 

就像我说的,代码模板直接来自其他有效的地方。如果我从查询中删除日期,它工作正常。我已经三次检查了 DATE 字段是一个 DATE/TIME 列,并且我尝试删除并重新创建它,但没有成功。

不胜感激。

【问题讨论】:

    标签: database ms-access asp-classic


    【解决方案1】:

    有段时间没接触Access了,不过几个查询你可以试试:

    查询 1:将 DATE 更改为 [DATE],因为 DATE 可能是 Access 使用的常用关键字。

        INSERT INTO COMMENTS 
        (FID,AUTHOR,[DATE],COMMENT) 
        VALUES 
        ("6","John Doe",#4/15/2012#,"test comment") 
    

    查询 2:将 #4/15/2012# 更改为 GetDate()(日期戳)

        INSERT INTO COMMENTS 
        (FID,AUTHOR,[DATE],COMMENT) 
        VALUES 
        ("6","John Doe",GETDATE(),"test comment") 
    

    或者也许尝试它们的组合。如果其中任何一个不起作用,请报告。

    【讨论】:

    • 你的第一个例子是有效的,你的第二个不是。如果 OP 需要当前日期,请使用 Date(),而不是 GETDATE()。理想情况下,日期应采用 4 位数的年、月、日格式,以避免歧义和语言环境错误。一个名为 FID 的字段(列)应该是文本,这对我来说似乎很奇怪。如果是数字,则不应引用该值。
    【解决方案2】:

    你可以试试#MM-DD-YYYY#。还建议使用YYYY-MM-DD,所以你可以试试#YYYY-MM-DD#甚至#'YYYY-MM-DD'#

    【讨论】:

    • 日期是保留字,必须用括号括起来,如@ZeeTee 所示。另请参阅下面关于日期格式的评论。
    【解决方案3】:

    这是我必须为我工作的:

        strDSNPath = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data.mdb")
        strSQL_Insert = "INSERT INTO COMMENTS (FID,AUTHOR,CDATE,COMMENT) VALUES ('6','John Doe','4/15/2012','test comment')"
    
       Set Conn=Server.CreateObject("ADODB.Connection")
            Conn.Open strDSNPath
                Conn.Execute strSQL_Insert
            Conn.Close
        Set Conn = Nothing
    

    这是数据库:Download

    注意事项:

    *我无法让它与 (") 一起使用,所以我使用了 (')

    *日期没有标签(可能需要修复)

    *抱歉来晚了,我花了一个半小时才弄明白,结果只是“使用单引号”

    【讨论】:

    • CDATE 对于字段(列)来说是一个非常糟糕的名称,它是一个函数的名称。
    • 您不能在字符串中使用双引号 ("),系统将如何判断字符串何时结束以及您的值何时开始。您可以使用两个双引号:" VALUES (""test comment"")"。如果您使用单引号引号,并且建议您使用两个单引号来转义字符串中出现的任何单引号:" VALUES ('I''ll try')" 替换函数将执行此操作。
    • FID 真的是文本列(字段)吗?
    • CDATE:哦,我不知道...在决赛之前必须改变。双引号:我知道,但我得到“[Microsoft][ODBC Microsoft Access Driver] 参数太少。预期为 4。”在我使用单人的 FID 之前出现错误:这是一个数字字段,我不知道她在顶部使用它...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 2016-06-28
    • 2014-05-30
    • 1970-01-01
    相关资源
    最近更新 更多