1.传统的方法
SELECT * FROM customer lastlogintime >= '2015-01-01 13:50:42' AND lastlogintime <= '2015-02-06 00:00:00' ORDER BY ID DESC
但是传统的方法效率很低。
2.采用UNIX_TIMESTAMP(数据库时间字段类型为TIMESTAMP),能有效的提高效率。
SELECT * FROM customer WHERE UNIX_TIMESTAMP(lastlogintime) >= UNIX_TIMESTAMP('2015-01-01 13:50:42') AND UNIX_TIMESTAMP(lastlogintime) <= UNIX_TIMESTAMP('2015-02-06 00:00:00') ORDER BY ID DESC
在项目中查询时间段的sql语句(时间类型为datetime或date)(数据库中的时间类型):
<if test="beginTime!=null and beginTime!=''">
<![CDATA[ and DATE_FORMAT(tr.add_time, '%Y-%m-%d')>= DATE_FORMAT(#{beginTime}, '%Y-%m-%d') ]]>
<if test="endTime!=null and endTime!=''">
<![CDATA[ and DATE_FORMAT(tr.add_time, '%Y-%m-%d') <= DATE_FORMAT(#{endTime}, '%Y-%m-%d') ]]>
SELECT * FROM TEST1 WHERE TO_CHAR(TIMESTAMP,'yyyy-MM-dd') > SUBSTR('2017-07-21 16:49:59',0,10)
上述查询语句适用于数据库中时间字段的格式Timestamp,而代码中的查询条件属性为字符串
to_char将时间字段转为字符串,同时限定格式为‘yyyy-MM-dd'
substr用于截取字符串,
@Query(value = &quot; select * from event e &quot;
+ &quot; where (e.event_title like CONCAT('%',?1,'%') or ?1 is null) &quot;
+ &quot; and (to_days(e.register_time)=to_days(?2)
开发过程中,我们经常需要查询查询数据库中符合指定日期条件的数据,如当日,昨日,一周内,一月内的数据,以下为mysql中查询指定日期的方式。
字段说明:sign_date 为date类型
rec_crt_ts 为datatime类型
TO_DAYS() 函数用法为返回从年份0开始的天数
-- 查询当日的数据
SELECT * FROM `tbl_task_sign_sub_acct` WHERE TO_DAYS(NOW()) = TO_DAYS(rec_crt_ts);
SELECT * FROM
MySQL Date 函数,统计当天、一周、一月等的
数据Date 函数DATE_ADD()DATEDIFF()
MySQL 使用下列
数据类型在
数据库中存储日期或日期/
时间值当前日期和
时间其他的 是
MySQL的UNIX_
TIMESTAMP() 转为
时间戳 -- 1天86400秒
时间戳以 秒 为单位
Date 函数
一、DATEDIFF函数:获取两个日期的时间间隔
//计划结束减去计划开始等于工期
DATEDIFF(MAX(pp.planEndDateTime),MIN(pp.planStartDateTime)) as timeLimit,
二、 DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法:DATE_FORMAT(date,format)
SELECT id,DATE_FORMAT(create_time, '%Y-%c-%d %H:%i:%S')
FROM e
由于Java中的日期类型只有Date类型,而Mysql中即有date型,又有datetime型,当我们想要在java中获取Mysql中datetime类型的数据或向Mysql数据库中插入datetime类型的数据时,需要做如下转换:
Private Date settime;
//settime的set和get方法
public String getSettime() {
String
你可以使用MySQL的`BETWEEN...AND`语句来查询时间段。具体步骤如下:
1.首先,确保你的时间列是以datetime或timestamp格式存储的。
2.使用以下语句查询指定时间段内的数据:
SELECT * FROM your_table
WHERE your_date_column BETWEEN 'start_datetime' AND 'end_datetime';
其中,`your_table`是你要查询的表名,`your_date_column`是你要查询的时间列名,`start_datetime`是查询时间段的开始时间,`end_datetime`是查询时间段的结束时间。
注意,时间格式必须是`YYYY-MM-DD HH:MM:SS`。
例如,查询2021年1月1日至2021年1月31日之间的数据,可以使用以下语句:
SELECT * FROM your_table
WHERE your_date_column BETWEEN '2021-01-01 00:00:00' AND '2021-01-31 23:59:59';
希望能帮到你。
完美答案: