繁体   English   中英

ms-access查询的SQL语法错误

[英]SQL Syntax error with ms-access query

这是我下面的查询。 我有的问题是B.REVISED_DATE是一个字符串,B.REVISED_DATE是一个日期,当我尝试运行查询时,出现数据不匹配错误。 我正在尝试将B.REVISED_DATE更改为字符串,但我不记得确切的语法。 我正在使用Microsoft Access作为数据库。 任何帮助,将不胜感激。

     SELECT A.ICAO, A.RWY, A.REVISED_DATE, B.REVISED_DATE
     FROM RUNWAYS A, RUNWAYS_UPDATABLE B, AIRPORT_CHECKLIST C
     WHERE A.RWYKEY = B.RWYKEY
     AND A.ICAO = C.ICAO
     AND A.REVISED_DATE <> B.REVISED_DATE
     AND TO_CHAR(B.REVISED_DATE) <> C.EMAIL_DATE
     ORDER BY A.ICAO

Access的数据库引擎不支持TO_CHAR函数。

如果B.REVISED_DATE是日期/时间数据类型,而C.EMAIL_DATE是文本,则可以使用CDate()从C.EMAIL_DATE获取日期/时间值。

B.REVISED_DATE <> CDate(C.EMAIL_DATE)

如果您希望使用等效于B.REVISED_DATE的文本,则可以使用CStr()函数。 但是,除非其格式与C.EMAIL_DATE相同,否则您的不平等比较可能会很麻烦。 您最好使用Format(),以便REVISED_DATE的格式设置与EMAIL_DATE相同

Format(B.REVISED_DATE, "mm/dd/yyyy") <> CDate(C.EMAIL_DATE)

但是对我来说,将两者作为日期进行比较似乎比较简单,因此您不必担心格式问题。

如果您希望将B.Revised_Date转换为字符串,请使用Format()函数。

Format(B.Revised_Date, "Format of date here")

格式转换将你约会到任何格式,你想用如图所示这里

如果您希望将B.Revised_Date转换为日期,请使用CDate()函数。

CDate(B.Revised_Date)

因此,如果您希望将两个日期都设为文本,则可以按照以下步骤进行操作。

AND Format(A.REVISED_DATE, "MM/dd/yyyy") <> Format(B.REVISED_DATE, "MM/dd/yyyy")

或者,但是您希望格式化日期。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM