添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最近常用到mysql的datetime类型的日期范围搜索,总结有以下几种方式可以,可以查询精确到秒之间的记录。字符串日期可以直接和datetime类型之间比较,无需转换,Mysql会将字符串类型日期转换成长整型数字进行比较,当然你也可以转换为同一类型后再比较

mysql日期与字符串转换函数

字符串转日期:STR_TO_DATE('2019-07-25 00:00:33', '%Y-%m-%d %H:%i:%s')  ,走索引

日期转字符串:DATE_FORMAT('2019-07-25 00:00:33', '%Y-%m-%d %H:%i:%s'),不走索引

如下表,查询,create_time为datetime类型,查询两个日期范围内的数据。

方式一、between...and(推荐)

SELECT * FROM k_student WHERE create_time  between '2019-07-25 00:00:33' and '2019-07-25 00:54:33'

方式二、大小于号

SELECT * FROM k_student WHERE create_time >= '2019-07-25 00:00:33' AND create_time <= '2019-07-25 00:54:32'

方式三、转换为UNIX_TIMESTAMP比较,create_time若加了索引,不走索引

SELECT * FROM k_student WHERE  UNIX_TIMESTAMP(create_time)  between UNIX_TIMESTAMP('2019-07-25 00:00:33') and UNIX_TIMESTAMP('2019-07-25 00:54:33')

最近常用到mysql的datetime类型的日期范围搜索,总结有以下几种方式可以,可以查询精确到秒之间的记录。字符串日期可以直接和datetime类型之间比较,无需转换,Mysql会将字符串类型日期转换成长整型数字进行比较,当然你也可以转换为同一类型后再比较mysql日期与字符串转换函数字符串转日期:STR_TO_DATE('2019-07-25 00:00:33', '%Y-%m-%d ... SELECT * FROM 表名 WHERE DATE_FORMAT(时间字段,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m'); 4. 查询 本季度 SELECT * FROM 表名 WHERE QUARTER(时间
代码如下: select * from table where DATE_FORMAT(FROM_UNIXTIME(createtime),’%Y-%m-%d’)=’2014-01-02′ FROM_UNIXTIME使用语法 FROM_UNIXTIME(unix_timestamp,format) FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)是 MySQL 里的时间函数 ,unix_timestamp可以是字段名,也可以直接是Unix时间,format主要是将返回值格式化。 若format已经给出,则结果的
MySQL 中,我们可以使用GROUP BY和HAVING子句来根据多个字段 查找 重复。 例如,如果我们有一张名为employees的员工表,其中包含了员工姓名、出生 日期 和性别等字段。现在我们想根据姓名和出生 日期 两个 字段来 查找 重复员工 记录 ,我们可以执行以下SQL语句: SELECT name, birthdate, gender, COUNT(*) FROM employees GROUP BY name, birthdate HAVING COUNT(*) > 1; 这个语句将按照姓名和出生 日期 字段分组,并计算每组中的 记录 数。如果 记录 数大于1,则说明有重复 记录 。 运行完这个语句后,我们将会看到输出了每个重复 记录 的姓名、出生 日期 、性别和 记录 数。如果想要删除这些重复 记录 的话,我们可以将上面的SELECT语句改为DELETE语句,并使用子 查询 来选择要删除的 记录 ,如下所示: DELETE FROM employees WHERE (name, birthdate) IN ( SELECT name, birthdate FROM employees GROUP BY name, birthdate HAVING COUNT(*) > 1