Mon*_*ou2 5 sql excel vba date between
我在使用excel和访问数据库在VBA中进行SQL查询时遇到问题.在mi VBA代码中,我有两个包含此内容的数据变量:
DateMin = 31/07/2014 22:00:00
DateMax = 01/08/2014 06:00:00
我有一个访问数据库,其中包含许多带有日期字段的数据.我正试图从数据库中提取我的两个变量之间的日期数据,我正在对此进行编码:
sql = "SELECT Date FROM Table WHERE Date BETWEEN #" & DateMin & "# AND #" & DateMax & "#
Run Code Online (Sandbox Code Playgroud)
但不起作用.结果不正确,日期不在我的两个日期之间.
但是,如果我更改句子和代码
sql = "SELECT Date FROM Table WHERE Date > #" & DateMin & "#
Run Code Online (Sandbox Code Playgroud)
有用!提供比DateMin更高的日期数据,但我没有DateMax来阻止它.我认为问题出在我的第一个代码的第二部分,因为如果我编码
sql = "SELECT Date FROM Table WHERE Date < #" & DateMax & "#
Run Code Online (Sandbox Code Playgroud)
我没有数据!为什么不给我低于DateMax的数据?因此,我认为BETWEEN句子不起作用.
对不起,我的英文,我想解释得更好,我知道.谢谢.
您应该始终使用明确的日期格式.当你有一个日期格式化时00/00/0000,Access必须猜测那是dd/mm/yyyy(英国)还是mm/dd/yyyy(美国).
您的DateMin(31/07/2014 22:00:00)只能被解释为dd/mm/yyyy hh:nn:ss,(31是无效的月份,所以它必须是一天)所以这是Access将使用的格式.
但是,你的DateMax(01/08/2014 06:00:00)正在以美国格式解释- 8th January 2014而不是1st August 2014.
解决这个问题的最简单方法是以ISO格式提供日期(yyyymmdd)或将月份作为短字提供(dd mmm yyyy hh:mm:ss例如01 Aug 2014 06:00:00)
| 归档时间: |
|
| 查看次数: |
22674 次 |
| 最近记录: |