如果开始日期和结束日期跨越一个或多个月,则插入表格时日期格式会发生变化
Posted
技术标签:
【中文标题】如果开始日期和结束日期跨越一个或多个月,则插入表格时日期格式会发生变化【英文标题】:Date Format changes when inserting into table if start date and end date cross one or more months 【发布时间】:2014-02-11 22:26:21 【问题描述】:我有一个 Access 2013 表单,它有两个未绑定的日期字段,FromDate 和 ToDate。我将这些插入到具有自动编号键字段的表 (TblGuestBooking) 中,因此要遵循的 SQL 语句中没有此功能。
如果 FromDate 和 ToDate 在同一个月,则日期输入为 dd/mm/yy,即表单域的格式。但是,如果起始日期在一个月内,而截止日期在下个月或更晚的月份,则后续月份的格式将更改为 mm/dd/yy。
例如 26/2/14 到 3/3/14 会产生下表条目:
26/02/14, 27/02/14, 28/02/14, 2014 年 3 月 1 日, 2014 年 3 月 2 日, 2014 年 3 月 3 日
这是我用来将日期放入表中的代码 sn-p(BookingID 是从表单中获取的。)
Dim BookingDate As Date
Dim SQLString As String
....
BookingDate = FromDate
Do
SQLString = "INSERT INTO TblGuestBooking ([BookingDate], [BookingID]) VALUES (#" & BookingDate & "#" & "," & Me.GuestSuiteBookingID & ")"
DoCmd.SetWarnings False
DoCmd.RunSQL SQLString
DoCmd.SetWarnings True
BookingDate = BookingDate + 1
Loop Until BookingDate = ToDate + 1
如果您已经阅读到这里,感谢您抽出宝贵时间。如果你能帮助我,非常非常感谢。
【问题讨论】:
【参考方案1】:在处理日期文字(由“哈希标记”#
括起来的文本值)时,无论在电脑。因此,如果您的计算机配置为将短日期显示为 dd-mm-yyyy
,并且您创建了一个使用 #04-02-2014#
的 Access 查询,它将总是被解释为 4 月 2 日,而不是 2 月 4 日。
解决方案是始终将日期文字格式化为明确的 yyyy-mm-dd
值。在你的情况下,而不是
... VALUES (#" & BookingDate & "#" ...
你会使用类似的东西
... VALUES (#" & Format(BookingDate, "yyyy-mm-dd") & "#" ...
【讨论】:
谢谢。我会试试看。我知道 SQ 日期格式是中午,并且在其他地方有一个功能来管理构建 sql 字符串时的差异。我的意思是转换并没有在某些日期发生,而是在其他日期发生。如果我要应用这个功能,它只会把错误换成正确,把正确换成错误。感谢您的回复 为 gobbledygook 道歉。在预测文本方面不太智能的智能手机上响应! 是的。有效。不知道为什么,但没有时间关心。强加一种格式似乎已经治愈了不稳定的行为,这就是我目前所需要的。非常感谢。【参考方案2】:在我的例子中,我使用以下代码创建和更新 Access 数据库中的日期字段。
strDay = Request("Day")
strMonth = Request("Month")
strYear = Request("Year")
InputDate = strYear & "-" & strMonth & "-" & strDay
if IsDate(InputDate) Then
InsertDate = CDate(InputDate)
else
'if date typed wrong, use Todays Date
InsertDate = Date()
end if
SQLUPD = "UPDATE MyDataBase SET DateField = '"& FormatDateTime(InsertDate, vbShortDate) &"'"
SQLINS = "INSERT INTO MyDataBase (DateField, Alist, Atype, Acomment) VALUES ('"& FormatDateTime(InsertDate, vbShortDate) &"', .....
那么所有带有日期的排序和输出操作都很顺利。
【讨论】:
以上是关于如果开始日期和结束日期跨越一个或多个月,则插入表格时日期格式会发生变化的主要内容,如果未能解决你的问题,请参考以下文章