Mat*_*ett 3 outlook datetime vba date datetime-format
我正在处理 Outlook 的 VBA 项目。该项目正在查看日历约会,并将它们与从 SQL 数据库中提取并存储在日期变量中的日期进行比较。
目前,当日期从 SQL 数据库中出来时,它们没有任何时间组件,但我想向其中添加一个。
例如,SQL 查询中出现“07/03/2018”,我希望能够将其设置为“07/03/2018 09:00:00”以及一天中的各个其他时间。
有没有一种方法可以做到这一点,而无需将日期变量转换为字符串,而只需在末尾添加时间?这是因为我希望能够在程序稍后的变量上使用基于日期的函数,例如 DateAdd 等。
有很多方法可以将日期和时间添加在一起。
\n\n这是我的一些想法:
\n\nSub examples()\n\n \'store an example date\n Dim dt As Date\n dt = CDate("March 7, 2018")\n\n \'now to add 9 hours:\n Debug.Print dt + (9 / 24)\n\n \'or, using DateAdd:\n Debug.Print DateAdd("h", 9, dt)\n\n \'or, add a time:\n Dim tm As Date\n tm = CDate("9:00 am")\n Debug.Print dt + tm\n\n \'or, as text:\n Dim str As String\n str = Format(dt, "mmm d, yyyy")\n str = str & " 9:00 am"\n Debug.Print CDate(str)\n\n \'or, with TimeValue:\n Debug.Print dt + TimeValue("9:00")\n\n \'or, get extract the date from a datettime and add a different time:\n Debug.Print DateValue(Now()) + TimeValue("9:00")\n\nEnd Sub\nRun Code Online (Sandbox Code Playgroud)\n\n哪种方法最好取决于您到底想用它做什么。
\n\n在 Excel 和 VBA 中,日期(或 DateTimes)只是从以下位置开始的数字:
\n\n\n\n\n“1900 年 1 月 0 日”午夜
\n
...并且增加了1 per day.
1 = January 1, 1900, 00:00:00 (00:00 = midnight)\n2 = January 2, 1900, 00:00:00\n\n43166 = March 7, 2018\nRun Code Online (Sandbox Code Playgroud)\n\n需要在 1900 年 1 月 2 日上午 9:00 到达吗?
\n\n1小时是一天的24分之一。
\xe2\x88\xb4 9:00 am= (9 \xc3\xb7 24)=0.375
\xe2\x88\xb4 2.375=January 2, 1900 9:00 am
相似地:
\n\n\xe2\x88\xb4 9:00 pm= (18 \xc3\xb7 24)=0.875
\xe2\x88\xb4 2.875=January 2, 1900 9:00 pm
上午 6:00 = 0.25(\xc2\xbc 日)\n中午 = 0.5(\xc2\xbd 日)\n下午 6:00 = 0.75(\xc2\xbe 日)
\n\n1 小时 \xe2\x89\x88 0.417\n1 分钟 \xe2\x89\x88 0.000695\n1 秒 \xe2\x89\x88 0.000011574
距离夏天还有多少天?
\n\nToday = 43166 (March 7, 2018)\nSummer begins = 43272 (June 21, 2018) [Northern Hemisphere]\n\n43272 - 43166 = 106 days\nRun Code Online (Sandbox Code Playgroud)\n\n距离夏天还有多少小时?
\n\n106 \xc3\x97 24 = 2544 hours\nRun Code Online (Sandbox Code Playgroud)\n\n……你明白了。 \xe2\x98\xba
\n\nExcel 中可能的最大时间:
\n\nFriday, December 31, 9999 23:59:59 = 2958465.99998843\nRun Code Online (Sandbox Code Playgroud)\n\n(...所以不要为那个周末制定任何计划。)
\n\nMicrosoft.com:如何在 Excel 中使用日期和时间
Office.com:日期和时间函数(参考)
Stack Overflow/MSDN:Excel 中的四舍五入日期和时间
| 归档时间: |
|
| 查看次数: |
14175 次 |
| 最近记录: |