如何在 Delphi 中过滤或显示两个日期之间每个月最后日期

c3frrgcw  于 2023-06-22  发布在  其他
关注(0)|答案(1)|浏览(157)

我需要帮助,如何过滤或显示每个月的最后一个日期之间的两个日期(datetimepicker)在adoquery(datebasems.access) Delphi ,例如:date 1 = 14/01/2023和date 2 = 03/03/2023,计算有3个月,month 1 month 2 month 3,
month 1有日期:2023年1月14日,2023年1月15日,2023年1月16日
month 2有日期:2023年2月1日,2023年2月2日,2023年2月3日,2023年2月4日
month 3有日期:2023年3月1日,2023年3月2日,2023年3月3日
我想要过滤最后日期,如:
2023年1月16日
2023年2月4日
2023年3月3日
我希望任何人可以帮助,谢谢

6ojccjat

6ojccjat1#

您可以使用前面所示的查询语法,如果您使用的是指定为日期的表单中的数据,并在DB中存储为字符串时,这将非常方便。
另外,您也可以轻松地使用代码,因为TDate和TDateTime只是浮点数,其中整个部分是天,小数部分是一天内的秒或毫秒。您可以轻松地添加、减去和比较这些值,而不必使用日期和/或时间格式在表单或查询中显示这些值的方式。(虽然,使用=和<>比较浮点数是不明智的。
我不知道ADO使用什么格式或数据类型来保存日期,但您应该能够轻松地在字符串和TDate值之间来回转换它们。
请记住,处理浮点数只需要很少的代码,而处理字符串需要相当多的处理开销。如果它是一个将日期保存为字符串的大表,请考虑将字符串日期转换为TDate -> integer,或者在另一个字段/列中仅使用Julian日期(整数值)。
如果您只查找日期,那么只需使用整个部分与关系运算符,可能在使用Floor方法转换为整数之前添加0.5。

相关问题