为了账号安全,请及时绑定邮箱和手机立即绑定

Java Spring MySQL String Timezone 列在两毫秒之间

Java Spring MySQL String Timezone 列在两毫秒之间

精慕HU 2021-06-07 17:23:59
我在MySQL 列上使用下一个格式将存储的时区日期作为字符串:2018-07-23T20:54:37.242Z --> 开始日期我想要做的是像这样的两毫秒(或日期)之间:SELECT * FROM activity_entity WHERE start_date BETWEEN 1532322000000 AND 1532408399000 否则,我使用Java Spring Repository作为后端,我在其中发送如下参数:Date since = new Date(accessRepPOSTInDto.getSince()); //1532322000000 gives Mon Jul 23 00:00:00 CDT 2018Date to = new Date(accessRepPOSTInDto.getTo());//1532408399000 gives Mon Jul 23 23:59:59 CDT 2018@Query(value = "SELECT * FROM activity_entity WHERE start_date BETWEEN :since AND :too , nativeQuery = true)ActivityEntity findBetweenDates(@Param("since") Date since, @Param("too") Date too);这样做会返回 null;我认为 MySQL 可以自动格式化两个日期和字符串列来执行之间,但它看起来没有。任何帮助将不胜感激。问候。
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

在您的本机查询中,您需要将 varchar 列的值显式转换为正确的日期/时间戳,以便由 between 运算符进行评估。这是您的本机查询应如下所示:

SELECT * FROM activity_entity WHERE STR_TO_DATE(start_date, '%Y-%c-%eT%H:%i:%s.%fZ') BETWEEN :since AND :too



查看完整回答
反对 回复 2021-06-10
  • 2 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信