使用datetime值在ms access查询中筛选日期和时间

oyt4ldly  于 2021-07-29  发布在  Java
关注(0)|答案(3)|浏览(559)

例如,我想检索数据库中从前天晚上10点到昨天晚上10点之间的所有内容。我现在有这个格式(7/2/2020下午2:00)。

brc7rcf0

brc7rcf01#

  1. Assuming table1 as table and col1 as column
  2. declare @yesterday datetime
  3. SELECT @yesterday=DATEADD(millisecond,DATEDIFF(millisecond, 0, (SELECT
  4. CONVERT(TIME,'22:00:00.000')) ),CAST( (convert(date,
  5. dateadd(day,datediff(day,1, GETDATE()),0))) AS DATETIME));
  6. declare @daybeforeyesterday datetime
  7. SELECT @daybeforeyesterday=DATEADD(millisecond
  8. ,DATEDIFF(millisecond, 0, (SELECT CONVERT(TIME,'22:00:00.000'))
  9. ),CAST( (convert(date, dateadd(day,datediff(day,2,
  10. GETDATE()),0))) AS DATETIME));
  11. select * from table1 where col1 between @yesterday and @daybeforeyesterday
vfh0ocws

vfh0ocws2#

只需使用 Date() (从午夜开始,'00:00:00')和 CDate (请注意,对于相同的值,时间格式可能不同,例如。, 10 PM22:00 ).

  1. SELECT ...
  2. FROM myTable
  3. WHERE myDate BETWEEN (Date() - 2) + CDate('10 PM')
  4. AND (Date() - 1) + CDate('22:00')
pgx2nnw8

pgx2nnw83#

计算小时数差异并使用日期添加:

  1. Select *
  2. From YourTable
  3. Where YourDateField Between
  4. DateAdd("h", -26, Date()) And DateAdd("h", -2, Date())

相关问题