时间函数
时间函数汇总。
返回日期和时间戳月中的第几号。
名称 | 类型 | 描述 |
---|---|---|
语法 | DAYOFMONTH ( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT DAYOFMONTH( NOW( ) ) FROM sample
返回日期和时间戳的一周星期几,按国际标准从周日开始为1。
名称 | 类型 | 描述 |
---|---|---|
语法 | DAYOFWEEK( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT DAYOFWEEK( NOW( ) ) FROM sample
返回日期和时间戳在一年中的天数位置。
名称 | 类型 | 描述 |
---|---|---|
语法 | DAYOFYEAR( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT DAYOFYEAR( NOW( ) ) FROM sample
返回时间或时间戳中的小时部分。
名称 | 类型 | 描述 |
---|---|---|
语法 | HOUR( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT HOUR( NOW ( ) ) FROM sample
返回时间或时间戳中的分钟部分。
名称 | 类型 | 描述 |
---|---|---|
语法 | MINUTE( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT MINUTE( NOW( ) ) FROM sample
返回日期和时间戳的月份。
名称 | 类型 | 描述 |
---|---|---|
语法 | MONTH( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT MONTH( NOW( ) ) FROM sample
返回日期和时间戳的季度号。
名称 | 类型 | 描述 |
---|---|---|
语法 | QUARTER( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT QUARTER( NOW( ) ) FROM sample
返回时间和时间戳的秒部分。
名称 | 类型 | 描述 |
---|---|---|
语法 | SECOND( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT SECOND( NOW( ) ) FROM sample
返回日期和时间戳在一年的第几周。
名称 | 类型 | 描述 |
---|---|---|
语法 | WEEK( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT WEEK( NOW( ) ) FROM sample
返回日期和时间戳的年部分。
名称 | 类型 | 描述 |
---|---|---|
语法 | YEAR( expression ) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | INT |
示例及效果:
SELECT YEAR( NOW( ) ) FROM sample
返回时间和时间戳在一周中名字,如星期一、星期二、星期三…。
名称 | 类型 | 描述 |
---|---|---|
语法 | DAYNAME( espression) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
返回类型 | VARCHAR |
示例及效果:
SELECT DAYNAME( NOW( ) ) FROM sample
返回日期和时间戳的月份名字。
名称 | 类型 | 描述 |
---|---|---|
语法 | MONTHNAME( expression [,format]) | |
参数 | expression | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
参数 | format | 以单引号包括'en'-返回双位数月份,如01、02、03…11、12,这是默认取值。'cn'-返回月份,如一、二、三、十一、十二。 |
返回类型 | VARCHAR |
示例及效果:
SELECT MONTHNAME( NOW( ) ) FROM sample
返回日期和时间戳的月份名字。
名称 | 类型 | 描述 |
---|---|---|
语法 | FORMATDATE( expression[,format]) | |
参数 | expression | 时间常量,日期常量字符。 |
参数 | format | 以单引号包括。返回字符的格式字符,如'yyyy-mm-dd hh24:mi:ss'。 |
返回类型 | VARCHAR |
示例及效果:
SELECT FORMATDATE('2012-02-01', 'yyyy-mm-dd hh24:mi:ss') FROM sample
暂时只支持以下8格式定义:
时间精度 | 格式 |
---|---|
DATETIME | 'yyyy-MM-dd HH24:mi:ss' |
DATE | 'yyyy-MM-dd' |
TIME | 'HH24:mi:ss' |
DATETIME_CN | 'yyyy年MM月dd日HH24时mi分ss秒' |
DATE_CN | 'yyyy年MM月dd日' |
TIME_CN | 'HH24时mi分ss秒' |
YYYYMMDD | 'yyyyMMdd' |
HHMMSS | 'HH24miss' |
返回指定的VARCHAR之后若干秒的另一个VARCHAR类型的数值。
名称 | 类型 | 描述 |
---|---|---|
语法 | DATEADD(date ,addcount ,type) | |
参数 | date | 具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
参数 | addcount | 整数,表示expression1之后若干(年、月、天、小时、分钟、秒),如果 expression2 为负,则表示之前。 |
参数 | type | 取值范围:Year,Month,Day,Hour,Minute,Second六种,返回值是由此参数决定。例如type= Year,缺省为秒。 |
返回类型 | VARCHAR |
示例及效果:
SELECT DATEADD(NOW(), 1*60*60*24) FROM sample
SELECT DATEADD(NOW(),1, 'month') FROM sample
返回两个指定的VARCHAR之间相隔的时间差。
名称 | 类型 | 描述 |
---|---|---|
语法 | DATEDIFF(startDate ,endDate ,type) | |
参数 | startDate | 开始时间,具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。 |
参数 | endDate | 结束时间,具有VARCHAR类型的日期常量、列或它们的任意组合运算的结果。这里的计算方式是endDate - startDate,返回为两者相隔数,单位由type决定。 |
参数 | type | 可以省略,以单引号包括,默认是day。取值范围:Year,Month,Day,Hour,Minute,Second六种,返回值是由此参数决定。例如type=Year,则函数计算结果是两个时间相差的年数。 |
返回类型 | INT |
示例及效果:
SELECT DATEDIFF(NOW(), tt) FROM sample
另外特别说明,年、月、日是截断计算的,时、分、秒是取秒后再反算,再取整,算法是有差异的:
- 年计算:2011-12-31 与 2012-1-1的计算结果是1年。
- 月计算:2012-3-31 与 2012-4-1的计算结果是1月。
- 日计算:2012-4-2 02:01:01 与 2012-4-1 23:59:59的计算结果是-1日。
- 时计算:2012-4-1 1:00:09 与 2012-4-1 02:00:01的计算结果不足一小时是0时。2012-4-1 1:01:01 与 2012-4-1 02:59:59的计算结果不足两小时是1时。
- 分计算:2012-4-1 1:01:59 与 2012-4-1 01:02:01的计算结果不足一分钟是0分。2012-4-1 01:01:01 与 2012-4-1 1:02:59的计算结果不足两分钟是1分。
- 秒计算:2012-4-1 01:01:01 与 2012-4-1 01:01:02的计算结果是1秒。
本函数是参考mssql的DATEDIFF进行处理的,所以计算值也跟它类似,但也有区别,时、分、秒的计算就有区别(其他数据库转换不了,所有就没处理相同)。