简体   繁体   English

如何在SQL查询中格式化日期?

[英]How to format date in a SQL query?

Hello I'm using MS JET OLEDB 4.0 on VBA (MS ACCESS) 您好我在VBA上使用MS JET OLEDB 4.0(MS ACCESS)

SQL = "SELECT COUNT(Date) FROM [Orders] WHERE [Orders].[Date] BETWEEN " & "#" & StartDate & "#" & " AND " & "#" & EndDate & "#"

The [Date] is formatted like f dd/mm/yyyy (French) and the StartDate and EndDate are formatted like mm/dd/yyyy (Two date objects). [日期]的格式类似于f dd / mm / yyyy(法语),而StartDate和EndDate的格式类似于mm / dd / yyyy(两个日期对象)。

My belief is that BETWEEN only compares dates formatted mm/dd/yyyy, so is there a way like a function to convert the [Date] formatting into mm/dd/yyyy so the between function can compare correctly? 我的信念是BETWEEN仅比较格式为mm / dd / yyyy的日期,所以有没有一种方法可以将[日期]格式转换为mm / dd / yyyy,以便函数之间可以正确比较?

Edit: Using a string instead of the dates like follow: 编辑:使用字符串代替日期,如下所示:

StartDateFormatted = Format(StartDate,"dd/mm/yyyy")
EndDateFormatted = Format(EndDate,"dd/mm/yyyy")

So as to be sure of the startdate and enddate format. 以确保开始日期和结束日期格式。 It doesn't work still. 它仍然无法正常工作。

I'm left to assume two things: 我要承担两件事:

  • Either BETWEEN onlys compares mm/dd/yyyy formats BETWEEN只比较mm / dd / yyyy格式

  • I have to use a function to format [Date] to mm/dd/yyyy 我必须使用一个函数将[日期]格式化为mm / dd / yyyy

Thanks to @Maciej Los for answering my question. 感谢@Maciej Los回答了我的问题。

Always use ISO date formatting YYYY-MM-DD and you will have no problems. 始终使用ISO日期格式YYYY-MM-DD,您将不会有任何问题。 Without formatting. 不格式化。

Use Format function . 使用格式化功能

SQL = "SELECT COUNT(Date)" & vbcr & _
"FROM [Orders]" & vbcr & _
"WHERE [Orders].[Date] BETWEEN #Format(" & StartDate & "], 'MM/dd/yyyy')# AND #Format(" & EndDate & ",'MM/dd/yyyy')#"

I have noticed from the SQL compilation of the query when using Between, that it turns it to MM/DD/YYYY and it did not work till I used Format(startdate, "mm/dd/yyyy"). 我从查询的SQL编译中注意到,在使用之间时,它将其转换为MM / DD / YYYY,并且直到我使用Format(startdate,“ mm / dd / yyyy”)才起作用。 Please check the snapshop. 请检查快照商店。

在此处输入图片说明

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

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