提取功能
這些函式採用一個 Variant
,可以作為引數強制轉換為 Date
,並返回表示日期或時間的一部分的 Integer
。如果引數無法轉換為 Date
,則會導致執行時錯誤 13:型別不匹配。
功能 | 描述 | 退貨價值 |
---|---|---|
年() | 返回 date 引數的 year 部分。 | 整數(100 到 9999) |
月() | 返回 date 引數的 month 部分。 | 整數(1 到 12) |
天() | 返回 date 引數的 day 部分。 | 整數(1 到 31) |
工作日() | 返回 date 引數的星期幾。接受一個可選的第二個引數,定義一週的第一天 | 整數(1 到 7) |
小時() | 返回 date 引數的小時部分。 | 整數(0 到 23) |
分鐘() | 返回 date 引數的分鐘部分。 | 整數(0 到 59) |
第二() | 返回 date 引數的第二部分。 | 整數(0 到 59) |
例子:
Sub ExtractionExamples()
Dim MyDate As Date
MyDate = DateSerial(2016, 7, 28) + TimeSerial(12, 34, 56)
Debug.Print Format$(MyDate, "yyyy-mm-dd hh:nn:ss") ' prints 2016-07-28 12:34:56
Debug.Print Year(MyDate) ' prints 2016
Debug.Print Month(MyDate) ' prints 7
Debug.Print Day(MyDate) ' prints 28
Debug.Print Hour(MyDate) ' prints 12
Debug.Print Minute(MyDate) ' prints 34
Debug.Print Second(MyDate) ' prints 56
Debug.Print Weekday(MyDate) ' prints 5
'Varies by locale - i.e. will print 4 in the EU and 5 in the US
Debug.Print Weekday(MyDate, vbUseSystemDayOfWeek)
Debug.Print Weekday(MyDate, vbMonday) ' prints 4
Debug.Print Weekday(MyDate, vbSunday) ' prints 5
End Sub
DatePart()
函式
DatePart()
也是一個返回日期的一部分的函式,但工作方式不同,並且允許比上述函式更多的可能性。例如,它可以返回一年中的季度或一年中的一週。
句法:
DatePart ( interval, date [, firstdayofweek] [, firstweekofyear] )
interval 引數可以是:
間隔 | 描述 |
---|---|
YYYY |
年(100 至 9999) |
Y |
一年中的某一天(1 至 366) |
m 個 |
月(1 至 12) |
Q |
季度(1 至 4) |
WW |
周(1 至 53) |
W |
星期幾(1 到 7) |
d |
每月的某一天(1 到 31) |
H |
小時(0 到 23) |
N |
分鐘(0 到 59) |
S |
秒(0 到 59) |
firstdayofweek 是可選的。它是一個常量,指定一週的第一天。如果未指定,則假定為 vbSunday
。
firstweekofyear 是可選的。它是一個常量,指定一年中的第一週。如果未指定,則假定第一週是 1 月 1 日發生的那一週。
例子:
Sub DatePartExample()
Dim MyDate As Date
MyDate = DateSerial(2016, 7, 28) + TimeSerial(12, 34, 56)
Debug.Print Format$(MyDate, "yyyy-mm-dd hh:nn:ss") ' prints 2016-07-28 12:34:56
Debug.Print DatePart("yyyy", MyDate) ' prints 2016
Debug.Print DatePart("y", MyDate) ' prints 210
Debug.Print DatePart("h", MyDate) ' prints 12
Debug.Print DatePart("Q", MyDate) ' prints 3
Debug.Print DatePart("w", MyDate) ' prints 5
Debug.Print DatePart("ww", MyDate) ' prints 31
End Sub