1、在查询中格式化输出日期
Format(date(), "yyyy-mm-dd")
2、计算两个日期的差值
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
3、日期加上一段时间
DateAdd(interval, number, date)
4、取得日期的一部分
DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
interval 参数具有以下设定值:
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
firstdayofweek 参数的设定值如下:
常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
vbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数的设定值如下:
常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。
vbFirstFullWeek 3 从第一个无跨年度的星期开始。
更多可以參考http://support.microsoft.com/kb/210604/zh-cn
名称 |
格式 |
功能 |
备注 |
取整函数 |
INT (<数值表达式>) |
取“数值表达式”值的整数部分值 |
|
截取左子串函数 |
LEFT(<字符串表达式>,<数值表达式>) |
从“字符串表达式”左侧第1个字符开始,截取“数值表达式”值个字符。 |
|
截取右子串函数 |
RIGHT(<字符串表达式>,<数值表达式>) |
从“字符串表达式”的最右端的第1个字符开始,截取“数值表达式”值个字符 |
|
测试字符串长度函数 |
LEN(<字符串表达式>) |
返回“字符串表达式”的字符个数。 |
注意是字符的个数 |
系统日期函数 |
DATE() |
返回当前系统日期 |
|
年函数 |
YEAR(<日期表达式>) |
返回年的四位整数。 |
|
月函数 |
MONTH(<日期表达式>) |
返回1~12之间的整数,表示一年的某月 |
|
返回日期指定部分函数 |
DatePart(interval, date) |
返回给定日期的指定部分 |
返回年份的话要用“yyyy”,四位;m为月,d为天 |
指定日期间隔函数 |
DateAdd(interval, number, date) |
将指定日期加上某个时间间隔 |
|
判断日期间隔函数 |
DateDiff (interval,date1,date2) |
判断两个日期之间的间隔 |
大日期在后面,小日期在前 |
1.Cdate(日期表达式)
将日期表达式转换成日期类型的数据。
日期表达式是任何可以解释成日期的表达式,包含日期文字,可以看作日期的字符串以及从函数返回的日期。
比如:myDate = CDate("99-5-20") ,这样的日期表达式必须加双引号,否则结果不可预料。
CDate 依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。
2.Now()
返回当前计算机系统设置的日期和时间。
3.Year(日期表达式)
返回表示年份的整数。
比如:Year("00-6-15") = 2000
4.Month(日期表达式)
返回 1 到 12 之间的整数,表示一年中的某月。
比如:Month("00-6-15") = 6
5.DateAdd(interval, number, date)
DateAdd 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,是所要加上去的时间间隔。
number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。
设置 interval 参数具有以下设定值:
设置 描述
yyyy 年
q 季
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 时
n 分钟
s 秒
说明
可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。
例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。
为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。
DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。
如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。
如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。
如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。
注意 DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。
事例:
DateAdd("d",10,"2000-6-18")
结果是: 2000-06-28
DateAdd("m",-1,"2000-6-18")
结果是: 2000-05-18
6、DateDiff 函数
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
语法 DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
interval 参数的设定值同DateAdd函数,请参考上面的例子。
例:DateDiff("d",#2004-01-06#,#2004-01-07#) 1
7、DatePart 函数
返回一个包含已知日期的指定时间部分的 Variant (Integer)。
语法 DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
DatePart 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,是要返回的时间间隔。
date 必要。要计算的 Variant (Date) 值。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
设置
interval 参数的设定值同DateAdd()
DatePart 函数示例本示例先取得一个日期,然后使用 DatePart 函数显示该日期是发生在该年的哪一季。
Dim TheDate As Date ' 声明变量。
Dim Msg
T
12、Time 函数
返回一个指明当前系统时间的 Variant (Date)。
语法
Time
示例
使用 Time 函数返回系统当前的时间。
Dim MyTimeMyTime = Time ' 返回系统当前的时间
说明
为了设置系统时间,请使用 Time 语句。
设置系统时间。
语法
Time = time
必要的 time 参数,可以是任何能够表示时刻的数值表达式、字符串表达式或它们的组合。
说明
如果 time 是一字符串,则 Time 会试着根据系统指定的时间,利用时间分隔符将其转换成一个时间。如果无法转换成一个有效的时间,则会导致错误发生。
13、FormatDateTime函数
描述
返回一个日期或时间格式的表达式。
语法
FormatDateTime(Date[,NamedFormat])
FormatDateTime函数语法有如下几部分:
部分 描述
Date 必需的。要被格式化的日期表达式
NamedFormat可选的。数字值,表示日期/时间所使用的格式。如果忽略该值,则使用vbGeneralDate。
设置值
NamedFormat参数的设置值如下:
常数 值 描述
vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则用短日期格式显示。如果有时间部分,则用长时间格式显示。如果都有,两部分都显示。
VbLongDate 1 用计算机区域设置值中指定的长日期格式显示日期。
VbShortDate 2 用计算机区域设置值中指定的短日期格式显示日期。
18、用户自定义日期/时间格式 (Format 函数)
下面标识一些可用来创建用户自定义日期/时间格式的字符:
字符 说明
(:) 时间分隔符。在一些区域,可能用其他符号来当时间分隔符。格式化时间值时,时间分隔符可以分隔时、分、秒。时间分隔符的真正字符在格式输出时取决于系统的设置。
(/) 日期分隔符。在一些区域,可能用其他符号来当日期分隔符。格式化日期数值时,日期分隔符可以分隔年、月、日。日期分隔符的真正字符在格式输出时取决于系统设置。
c 以 ddddd 来显示日期并且以 ttttt 来显示时间。如果想显示的数值无小数部分,则只显示日期部分,如果想显示的数值无整数部分,则只显示时间部分。
d 以没有前导零的数字来显示日 (1–31)。
dd 以有前导零的数字来显示日 (01–31)。
ddd 以简写来表示日 (Sun–Sat)
dddd 以全称来表示日 (Sunday–Saturday)
ddddd 以完整日期表示法显示(包括年、月、日),日期的显示要依系统的短日期格式设置而定。
dddddd 以完整日期表示法显示日期系列数(包括年、月、日),日期的显示要依系统识别的长日期格式而定。缺省的长日期格式为 mmmm
dd, yyyy。
aaaa 与dddd 一样,它只是该字符串的本地化版本。
w 将一周中的日期以数值表示(1 表星期日~ 7表星期六)。
ww 将一年中的星期以数值表示 (1–54)。
m 以没有前导零的数字来显示月 (1–12)。如果 m 是直接跟在 h 或 hh 之后,那么显示的将是分而不是月。
mm 以有前导零的数字来显示月 (01 – 12)。如果m是直接跟在h或hh之后,那么显示的将是分而不是月。
mmm 以简写来表示月 (Jan–Dec)。
mmmm 以全称来表示月 (January–December)。
oooo 与mmmm一样,它只是该字符串的本地化版本。
q 将一年
如何将文本型:2003.08.04 转换为日期型:2003-08-04
cdate(replace("2003.08.04",".","-"))
显示当前日期在该年中所处的星期号
=Format(Now(), "ww")
ww 为 1 到 53。
显示日期字段值的四位年份值。
=DatePart("yyyy", [订购日期])
显示日期字段值前 10 天的日期值。
=DateAdd("y", -10, [应付日期])
显示日期字段值前一个月的日期值。
=DateAdd("m",-1,Date())
显示日期1和日期2之间相差的天数。
=DateDiff("d", [订购日期], [发货日期])
从今天算起到三个月后的日期之间的记录。
Betweeb date() and adddate(3,date())
根据出生日期计算年龄(周岁)
=IIf(Month(Date())-Month([出生年月日])>-1,Year(Date())-Year([出生年月日]),Year(Date())-Year([出生年月日])-1)
日期函数示例
当天日期:=Date()
当日:=Day(date)
当月:=Month(date())
当年:=Year(date())
当季:=DatePart("q",Date())
算出每个月的天数
一法:
Dim a, b, c
a = Year(Now())
b = Month(Now())
c = Format((a & "/" & b + 1 & "/1"), "######") - Format((a & "/" & b & "/1"), "######")
二法:
DateDiff("d", Format(Date, "yyyy-mm-01"), Format(DateAdd("m", -1, Date), "yyyy-mm-01"))
DateDiff可以算出两个日期之间相差几天!
三法:
Day(DateAdd("d", -1, Format(Date, "yyyy-mm-01")))
day函数可以知道某个日期是这个月的第几天,我们把这个月的最后一天拿出来DAY一下!
应该还有更好的方法!
比如说可以定义一个数组,把每个月的日子放进去,或者说写一个函数算每一个月的天数
只要考虑一下闺年的问题就可以了!
如何得到某年每个月的第一天是星期几
Private Sub Command1_Click()
Dim i As Integer, A As Integer, B As Integer, C As String
A = InputBox("请输入年份", "某年每个月的第一天是星期几")
Form1.Cls
For i = 1 To 12
C = A & "-" & i & "-1"
B = Weekday(C)
Select Case B
Case vbSunday
Print A & "年" & i & "月1日是 星期日"
Case vbMonday
Print A & "年" & i & "月1日是 星期一"
Case vbTuesday
Print A & "年" & i & "月1日是 星期二"
Case vbWednesday
Print A &a