[英]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.