[{"id":"840f0737-df1d-47ae-bb0a-359b01fe0608","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"d5d9cdef-8854-4505-89be-a2bbc3cb4482","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"3dc3dd55-35b0-4d23-bf62-47bc3650e4ee","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"80d84fbc-d0f8-4e4a-947f-e3e4de9b49b2","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]},{"id":"9152b7ca-0186-4fe3-a26f-5a05f322db07","tags":[{"product":null,"links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80","name":"\u65B0\u589E","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63"}]}]
DateAdd 函数返回一个 Date 值,其中包含添加指定时间间隔的日期和时间值。如DataAdd("d",-1,"2017-1-1")返回值为"2016-12-31"。
以下分别为您介绍如何使用 DateAdd 函数获取月末日期以及进行 SQLite 日期转换。
报表应用中经常需要制作月报,月报就需要取到整个月的数据,即从月初第一天到月末最后一天的所有业务数据。而数据库中的日期往往带有具体时间,这就容易造成最后一天的数据遗漏。
为了避免这种情况的发生,我们经常需要用次月的首日减一天来得到当月的月末日期。
我们以今天为例,看一下具体的实现方法:
首先得到“ 次月首日 ”: {DateAdd("M", 1, DateSerial(Year(Today()), Month(Today()), 1))}
然后用“ 次月首日 ”减一天得到我们需要的“ 月末日期 ”: {DateAdd("d", -1, DateAdd("M", 1, DateSerial(Year(Today()), Month(Today()), 1)))}
SQLite数据库中的日期时间字段值存储为一个浮点数,例如:43425.455467963。
其含义为:
整数部分为自1899-12-30的天数
小数部分为自凌晨0点的天数,0.5即中午12点整
为了便于阅读,我们可以使用表达式将其显转换为 yyyy-MM-dd HH:mm:ss 形式。
我们以下图中的SQLite字段值为例,介绍如何进行SQLite日期字段值的转换。
实现分析:
“ADate”字段只有整数部分,那我们只需要转换天数即可。使用 {DateAdd("d",ADate,"1899-12-30") }。
“FGC_Create Date”字段由整数部分和小数部分组成,我们需要转换天数以及时分秒数。使用{DateAdd("s", (FGC_CreateDate-Floor(FGC_CreateDate))*24*60*60, DateAdd("d",Floor(FGC_CreateDate),"1899-12-30") )}。
实际应用中,您可以参考套用以上两个表达式。
使用这两个表达式进行转换后,效果如下。