广告位 · 页头(后台-模块管理-新建模块后替换此区域)

Access中有哪些常用的日期与时间函数?

在Access数据库的日常使用中,日期与时间相关的处理操作出现的频率非常高,无论是统计订单时间差、按月份分组统计数据,还是筛选特定日期范围的数据,都需要用到对应的日期与时间函数。下面我们就来汇总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中常用的日期与时间函数汇总,大家可以根据实际的业务需求选择合适的函数使用,熟练掌握这些函数可以大幅简化日期时间相关的处理逻辑。

广告位 · 文章底部(后台-模块管理替换此区域)