在Access数据库的日常使用中,日期与时间相关的处理操作出现的频率非常高,无论是统计订单时间差、按月份分组统计数据,还是筛选特定日期范围的数据,都需要用到对应的日期与时间函数。下面我们就来汇总Access中常用的日期与时间函数。

一、基础日期时间获取函数
这类函数主要用于获取当前的日期、时间或者组合的时间戳,是最基础的使用场景。
- Date():返回当前系统的日期,不包含时间部分。
- Time():返回当前系统的时间,不包含日期部分。
- Now():返回当前系统的日期和时间组合值。
使用示例:
-- 获取当前日期 SELECT Date() AS 当前日期; -- 获取当前时间 SELECT Time() AS 当前时间; -- 获取当前日期时间 SELECT Now() AS 当前日期时间;
二、日期时间提取函数
当我们需要从完整的日期时间值中提取特定的部分,比如年份、月份、天数、小时等,就可以使用这类函数。
1. Year()、Month()、Day()函数
这三个函数分别用于提取日期中的年份、月份、日,参数传入一个合法的日期或日期时间值即可。
-- 提取指定日期的年份、月份、日 SELECT Year(#2024-05-20#) AS 年份, Month(#2024-05-20#) AS 月份, Day(#2024-05-20#) AS 日;
2. Hour()、Minute()、Second()函数
这三个函数分别用于提取时间或日期时间值中的小时、分钟、秒数。
-- 提取当前时间的小时、分钟、秒数 SELECT Hour(Now()) AS 小时, Minute(Now()) AS 分钟, Second(Now()) AS 秒数;
3. DatePart()函数
DatePart是一个更通用的提取函数,可以提取日期时间的任意指定部分,语法为DatePart(interval, date[, firstdayofweek[, firstweekofyear]]),其中interval是必需参数,指定要提取的部分,可选值包括yyyy(年)、q(季度)、m(月)、y(一年的第几天)、d(日)、w(工作日)、ww(周)、h(小时)、n(分钟)、s(秒)。
-- 提取指定日期的季度和一年中的第几天
SELECT DatePart("q", #2024-05-20#) AS 季度, DatePart("y", #2024-05-20#) AS 年中第几天;三、日期时间计算与间隔函数
这类函数用于计算日期时间的差值,或者对日期时间进行加减操作。
1. DateDiff()函数
DateDiff用于计算两个日期之间的时间间隔,语法为DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]),返回date2减去date1的时间间隔数。
-- 计算两个日期相差的天数
SELECT DateDiff("d", #2024-05-01#, #2024-05-20#) AS 相差天数;
-- 计算两个日期相差的月份
SELECT DateDiff("m", #2024-01-15#, #2024-05-20#) AS 相差月数;2. DateAdd()函数
DateAdd用于对指定的日期加上或减去指定的时间间隔,语法为DateAdd(interval, number, date),number为正数表示加,负数表示减。
-- 当前日期加30天
SELECT DateAdd("d", 30, Date()) AS 30天后日期;
-- 当前日期减3个月
SELECT DateAdd("m", -3, Date()) AS 3个月前日期;四、日期时间格式化函数
Format()函数可以将日期时间值按照指定的格式转换为字符串,语法为Format(expression[, format[, firstdayofweek[, firstweekofyear]]]),其中format参数指定输出的格式。
-- 将当前日期格式化为yyyy年mm月dd日的形式 SELECT Format(Now(), "yyyy年mm月dd日 hh:nn:ss") AS 格式化日期时间; -- 只显示日期部分,格式为yyyy-mm-dd SELECT Format(Date(), "yyyy-mm-dd") AS 标准日期格式;
五、其他常用日期函数
- DateSerial():根据指定的年、月、日返回对应的日期值,语法为
DateSerial(year, month, day),可以处理月份或日期超出范围的情况,比如月份传13会自动转为下一年的1月。 - DayOfWeek():返回指定日期是星期几,返回值为1到7,分别对应周日到周六,语法为
DayOfWeek(date[, firstdayofweek])。
-- 生成2024年5月20日的日期,等价于#2024-05-20# SELECT DateSerial(2024, 5, 20) AS 生成日期; -- 判断2024-05-20是星期几,1为周日,2为周一,以此类推 SELECT DayOfWeek(#2024-05-20#) AS 星期几;
以上就是Access中常用的日期与时间函数汇总,大家可以根据实际的业务需求选择合适的函数使用,熟练掌握这些函数可以大幅简化日期时间相关的处理逻辑。