您现在的位置:首页 >> 软件开发 >> 内容

在Access SQL语句中常用的函数

时间:2023-12-12 23:13:44 点击:

  核心提示:1、在查询中格式化输出日期 Format(date(), 'yyyy-mm-dd')2、计算两个日期的差值 DateDiff(interval, date1, date2[, firstdayofwe...

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     从第一个无跨年度的星期开始。


日期函數
Year
返回給定日期的年份。
例如统计不同年份的销售额:
Select Year(日期) AS 年, SUM(数量) AS 数量 FROM 订单 GROUP BY Year(日期)
Month
返回给定日期的月份。
例如统计1999年各月的销售额:
Select Month(日期) AS 月, SUM(数量) AS 数量 FROM 订单 Where Year(日期) = 1999 GROUP BY Month(日期)
Day
返回给定日期的天
Date
返回系统日期
例如查询当天的订单:
Select * FROM 订单 Where 日期 = Date()
DatePart
返回给定日期时间的指定部分
语法
DatePart(Interval, date)
Interval: 字符型,表示希望返回的时间部分
Date: 给定的日期值
Interval 包含以下设置:
yyyy 年 
q    季度 
m    月 
y    某年的某一天 
d    天 
w    工作日 
ww   周 
h    时 
n    分 
s    秒
例如统计1999年的各季度每种产品的销售数量:
Select 产品, DatePart('q', 日期) AS 季度, SUM(数量) AS 数量 FROM 订单 Where Year(日期) = 1999 GROUP BY 产品, DatePart('q', 日期)
DateDiff
计算两个给定日期的间隔。
语法


DateDiff(Interval, Date1, Date2)
Interval:表示时间间隔的类型。
Date1:起始日期
Date2:结束日期
Interval 包含以下设置:
yyyy 年 
q    季度 
m    月 
y    某年的某一天 
d    天 
w    工作日 
ww   周 
h    时 
n    分 
s    秒
例如加载最近两个月内的订单:
Select * FROM 订单 Where DateDiff('m', 日期, Date()) < 2
DateAdd
为一给定的日期加上给定的时间间隔。
语法


DateAdd(Interval, Number, Date)
Interval:表示时间间隔的类型,可设置的值和DateDiff函数相同。
Number: 表示要加上的时间间隔数量。
Date: 日期值
例如加载未来两个月要发货的订单:
Select * FROM 订单 Where 发货日期 BETWEEN Date() AND DateAdd('m', 2, Date())
数学函数
Abs
返回数值的绝对值。
Int
返回数值的整数部分。
Round
将数值四舍五入到指定的小数位数。
例如:
Select 客户,Count(*) AS 订单数, SUM(数量) AS 数量, Round(SUM(数量 * 单价 * (1 - 折扣)), 2) AS 金额 FROM 订单 GROUP BY 客户
上述语句的金额由数量、单价、折扣计算得出,且保留两位小数。
字符函数
Len
返回字符串的长度。
Mid


返回字符串从指定位置开始指定个数的字符,例如:Mid('abcdef',2,3) = 'bcd'
InStr
返回一个字符串在另一个字符串中首次出现的位置,例如:Instr('abcd','bc') = 2
InStrRev
返回一个字符串在另一个字符串中最后一次出现的位置。
LCase
将字符串转换为小写。
UCase
将字符串转换为大写。
Left
返回字符串从左边开始指定个数的字符,例如:Left('abcd',2) = 'ab'
Right
返回字符串从右边开始指定个数的字符。
流程函数
Choose
根据一个整数表达式的结算结果,来决定返回那个位置的值
语法:
Choose(expr, value1, value2, value3...)
expr: 整数表达式,如果结果是1,则返回value1,如果结果是2,则返回value2,依次类推。
例如:choose(2,'a','b') = 'b'
Switch
按顺序计算一系列的表达式,如果某一表达式成立,则返回其随后的值。
语法:
Switch(expr1, value1, expr2, value2, expr3, value3...)
expr1、expre2、expr3:表示要计算的表达式,expr1成立的话,返回值value1,expr2成立的话,返回值value2,依次类推。
IIF
根据一个逻辑表达式的计算结果,返回两个候选值之一。
语法:
IIf(expr, truepart, falsepart)
expr: 逻辑表达式
truepart:逻辑表达式成立时返回的值
falsepart: 逻辑表达式不成立时返回的值
例如:
Select 客户, 产品, 日期, 数量, 数量 * 单价 * (1 - IIF(折扣 IS NULL, 0, 折扣)) As 金额 FROM 订单
这样,即使某一行没有输入折扣,也能正常计算出金额。

作者:站长 来源:网络
相关文章
  • 没有相关文章
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 陈工笔记(www.dui580.com) © 2024 版权所有 All Rights Reserved.
  • 站长:陈工 微信号:chengongbiji QQ:24498854
  • Powered by 陈工