ms-access - 如何将 MS Access 中的日期选择器默认为当天的 0hrs 0min 0sec?
问题描述
我可以使用日期选择器更改日期,但是,前一个选择中的 hrs:minutes:seconds 也随之而来,这也使得这一天不会从 0hs:0min:0sec 开始。让我解释:
我正在使用前端/后端访问/服务器表,在访问前端我有两个日期选择器(txtFrom 和 txtTo)和一个 cmb 框作为周期选择器(cmbPeriod = 今天、本周、本月等)
日期选择器上的日期以三种方式更改,我遇到了其中一种问题。如果您将 cmbPeriod、txtFrom 和 txtTo 留空,则 txtFrom 和 txtTo 将填充所有报告的第一个和最后一个日期,如下所示:
If Me.cmbPeriod & "" = "" Then
If Me.txtFrom & "" = "" Then Me.txtFrom = DMin("[Date]", "qryUnapprovedreports")
If Me.txtTo & "" = "" Then Me.txtTo = DMax("[Date]", "qryUnapprovedReports")
End If
当我使用此方法时,以下是一个示例:
txtFrom = 06/29/18 1:56:25 PM
txtTo = 07/20/18 3:50:39 PM
注意:对于操作员来说,时间无关紧要,所以我要求他们只选择日期。
当我更改日期选择器上的日期时,hrs:min:sec 跟随我选择新的日期而不是一天的开始:另一个例子:
txtFrom Date-Picker = 07/13/2018. gives
txtFrom = 07/13/2018 1:56:25 PM and I need it as
txtFrom = 07/13/2018 0:00:00 AM
这是缩短我的时间,不包括在 1:56 之前提交的报告,这是错误的。
如何强制访问日期选择一天的开始并忽略或重置时间。
解决方案
要从日期中删除时间,您只需删除小数点后的所有内容。
以您的示例:
DMax("[Date]", "qryUnapprovedReports")
...返回一个 DateTime,您可以将其舍入到午夜:
ROUND(DMax("[Date]", "qryUnapprovedReports"),0)
...将四舍五入到最接近的一整天(因此2001-01-01 4:20pm
变成2001-01-02 12:00am
),或者,
INT(DMax("[Date]", "qryUnapprovedReports"))
..会截断日期,所以它会切断时间(所以2001-01-01 4:20pm
变成2001-01-01 12:00am
)
日期以数字形式存储在 MS Office 中。
1 = 1 day
Therefore:
0.5 = half a day (or "12:00 noon")
0.25 = quarter day (or "6:00am")
1 hour = 1/24th of a day = approx 0.041667
1 second = approx 0.0000115740740740741
有关更多信息,请参见:
相同的信息适用于所有 MS Office 应用程序。在线提供大量教程和代码示例,可帮助您在 Access(或 Excel)中处理日期和时间。
推荐阅读
- sql - 如何从每一列的最大值的行中选择一个 ID?
- mongodb - 当每个字段都可搜索和可排序时,如何在 MongoDB 上正确构建索引?
- amazon-s3 - 使用目录结构在同一帐户中的两个存储桶之间同步对象
- node.js - Mocha/Chai 节点测试中的“之前”和“描述”块中的操作顺序
- android-bluetooth - 禁用按钮直到蓝牙连接
- java - 测试服务器处于生产模式
- html - 添加链接以将鼠标悬停在文本更改按钮上?
- javascript - 从 fetch API 响应中动态返回构建对象
- java - 无法使用 @JsonFormat 从 UTC 序列化 AEST 时区中的日期。为什么?
- excel - 如果单元格包含“,”,如何复制行并将其插入到下面的新行中,并删除原始单元格中“,”之后的内容