SQL 日期函数
下面的列表中是 SQL 中所有与日期和时间相关的重要函数。你所用的 RDBMS 可能会支持更多其他的函数。下面的列表基于 MySQL 关系型数据库管理系统。
名称 描述
ADDDATE() 增加日期
ADDTIME() 增加时间
CONVERT_TZ() 将当前时区更改为另一时区
CURDATE() 返回当前日期
CURRENT_DATE(), CURRENT_DATE CURDATE() 的别名
CURRENT_TIME(), CURRENT_TIME CURTIME() 的别名
CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP NOW() 的别名
CURTIME() 返回当前时间
DATE_ADD() 将两个日期相加
DATE_FORMAT() 按照指定格式格式化日期
DATE_SUB() 将两个日期相减
DATE() 从 date 或者 datetime 表达式中提取出日期部分
DATEDIFF() 将两个日期相减
DAY() DAYOFMONTH() 的别名
DAYNAME() 返回某天在用星期中的名称
DAYOFMONTH() 返回某天是当月的第几天 (1-31)
DAYOFWEEK() 返回某天是该星期的第几天
DAYOFYEAR() 返回某天是一年中的第几天(1-366)
EXTRACT 提取日期中的某一部分
FROM_DAYS() 将天数转换为日期
FROM_UNIXTIME() 将某个日期格式化为 UNIX 时间戳
HOUR() 提取小时
LAST_DAY 返回参数日期所在月份的最后一天
LOCALTIME(), LOCALTIME NOW() 的别名
LOCALTIMESTAMP, LOCALTIMESTAMP() NOW() 的别名
MAKEDATE() 利用年份和某天在该年所处的天数来创建日期
MAKETIME MAKETIME()
MICROSECOND() 由参数返回微秒
MINUTE() 由参数返回分钟
MONTH() 返回日期参数的月份
MONTHNAME() 返回月份的名字
NOW() 返回当前日期和时间
PERIOD_ADD() 向年月格式的日期数据之间添加一段时间
PERIOD_DIFF() 返回两个年月格式的日期数据之间的月份数
QUARTER() 返回日期参数所在的季度
SEC_TO_TIME() 将秒数转换为 ‘HH:MM:SS’ 格式
SECOND() 返回参数中的秒数 (0-59)
STR_TO_DATE() 将字符串转换为日期数据
SUBDATE() 以三个参数调用的时候是 DATE_SUB() 的同义词
SUBTIME() 减去时间
SYSDATE() 返回函数执行的时的时刻
TIME_FORMAT() 格式化时间
TIME_TO_SEC() 将时间参数转换为秒数
TIME() 返回参数表达式中的时间部分
TIMEDIFF() 将两个时间相减
TIMESTAMP() 只有一个参数时,该函数返回 date 或者 datetime 表达式。当有两个参数时,将两个参数相加。
TIMESTAMPADD() 在 datetime 表达式上加上一段时间
TIMESTAMPDIFF() 在 datetime 表达式上减去一段时间
TO_DAYS() 将日期参数转换为天数
UNIX_TIMESTAMP() 返回 UNIX 时间戳
UTC_DATE() 返回当前 UTC 日期
UTC_TIME() 返回当前 UTC 时间
UTC_TIMESTAMP() 返回当前 UTC 日期和时间
WEEK() 返回参数的星期数
WEEKDAY() 返回日期参数时一个星期中的第几天
WEEKOFYEAR() 返回日期参数是日历上的第几周 (1-53)
YEAR() 返回日期参数中的年份
YEARWEEK() 返回年份和星期
Sql Server 中一个非常强大的日期格式化函数
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
SQL Aggregate 函数
SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
有用的 Aggregate 函数:
AVG() - 返回平均值
COUNT() - 返回行数
FIRST() - 返回第一个记录的值
LAST() - 返回最后一个记录的值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回总和
SQL Scalar 函数
SQL Scalar 函数基于输入值,返回一个单一的值。
有用的 Scalar 函数:
UCASE() - 将某个字段转换为大写
LCASE() - 将某个字段转换为小写
MID() - 从某个文本字段提取字符
LEN() - 返回某个文本字段的长度
ROUND() - 对某个数值字段进行指定小数位数的四舍五入
NOW() - 返回当前的系统日期和时间
FORMAT() - 格式化某个字段的显示方式