目录
-
时间函数
- 1 NOW
获取当前日期和时间的函数。
语法: NOW()
例如:select NOW();
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S');
- 2 CURDATE
获取当前的日期
语法:CURDATE()
- 3 CURTIME()
获取当前时间
语法:CURTIME()
- 4 DATE
获取日期时间或者日期的日期部分
语法:DATE(date)
date 参数是合法的日期表达式。
- 5 EXTRACT
获取返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
语法:EXTRACT(unit FROM date)
date 参数是合法的日期表达式。
unit 参数可以是下列的值:MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR、SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR、YEAR_MONTH
例如获取当前年月:
SELECT EXTRACT(YEAR_MONTH FROM now())
- 6 DATE_ADD
将日期添加指定的时间间隔。
语法:DATE_ADD(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是添加的时间间隔。
type 参数可以是下列值:MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR、SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR、YEAR_MONTH
例如:select DATE_ADD(now(),INTERVAL 2 DAY); //获取两天后的时间
- 7 DATE_SUB
将日期减去指定的时间间隔。
语法:DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是添加的时间间隔。
type 参数可以是下列值:MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR、SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR、YEAR_MONTH
例如:select DATE_SUB(now(),INTERVAL 2 DAY); //获取两天前的时间
- 8 DATEDIFF
获取两个日期之间的天数。(只有日期部分参与计算)
语法:DATEDIFF(date1,date2)
date1 和 date2 参数是合法的日期或日期/时间表达式。
例如:SELECT DATEDIFF(NOW(),'2008-08-08') AS 北京奥运会多天前
- 9 DATEFORMAT
格式化日期时间
语法:DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
格式:描述
%a:缩写星期名
%b:缩写月名
%c:月,数值
%D:带有英文前缀的月中的天
%d:月的天,数值(00-31)
%e:月的天,数值(0-31)
%f:微秒
%H:小时 (00-23)
%h:小时 (01-12)
%I:小时 (01-12)
%i:分钟,数值(00-59)
%j:年的天 (001-366)
%k:小时 (0-23)
%l:小时 (1-12)
%M:月名
%m:月,数值(00-12)
%p:AM 或 PM
%r:时间,12-小时(hh:mm:ss AM 或 PM)
%S:秒(00-59)
%s:秒(00-59)
%T:时间, 24-小时 (hh:mm:ss)
%U:周 (00-53) 星期日是一周的第一天
%u:周 (00-53) 星期一是一周的第一天
%V:周 (01-53) 星期日是一周的第一天,与 %X 使用
%v:周 (01-53) 星期一是一周的第一天,与 %x 使用
%W:星期名
%w:周的天 (0=星期日, 6=星期六)
%X:年,其中的星期日是周的第一天,4 位,与 %V 使用
%x:年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y:年,4 位
%y:年,2 位
-
时间格式化范围-SQL
-
DATE_FORMAT
下面两个语句的效果相同
SELECT *
FROM `tablename`
WHERE DATE_FORMAT(`create_time`, '%Y-%m-%d-%H-%i-%S') < DATE_FORMAT(NOW(), '%Y-%m-%d-%H-%i-%S')
SELECT *
FROM `tablename`
WHERE create_time >= DATE_FORMAT(`create_time`, '%Y-%m-%d')
AND create_time <= DATE_FORMAT(NOW(), '%Y-%m-%d')
-
查询结果自增编号xml
-
ORACLE-ROWNUM
<select id="findPage" parameterType="com.gisquest.realestate.modules.microqjdctool.domain.Xmsf"
resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM ( SELECT A.*, ROWNUM AS RN FROM ( SELECT
<include refid="Base_Column_List"/>
FROM XM_SF
<where>
<if test="objectid != null and objectid != ''">
OBJECTID LIKE '%'||#{objectid}
</if>
<if test="zfsbxx != null and zfsbxx != ''">
AND ZFSBXX LIKE '%'||#{zfsbxx}||'%'
</if>
</where>
) A )
<where>
<if test="page.startRow != null and page.startRow != '' and page.endRow != null and page.endRow != ''">
RN BETWEEN ${page.startRow} AND ${page.endRow}
</if>
<if test="page.orderBy != null and page.orderBy != ''">
order by #{page.orderBy}
</if>
</where>
</select>
-
MYSQL-@NUM
SET @num=0;
SELECT @num:=@num+1 AS RN,A.*
FROM (
SELECT *
FROM gisq_analysis_bookmark
WHERE creator = '0d3b320d-fc26-11e8-bbba-2a46544a2d0b'
) A