【发布时间】:2020-02-06 05:36:25
【问题描述】:
环境
- mybatis-spring-boot-starter 2.0.1
- mybatis 3.5.1
- mybatis-spring 2.0.1
- mysql-connector-java 8.0.16
jvm 时区:亚洲/首尔
我的测试查询
选择#{从},#{到}
输入
YearMonth input = YearMonth.of(year, month)
LocalDateTime from = input.atDay(1).atStartOfDay()
LocalDateTime to = input.atEndOfMonth().atTime(LocalTime.MAX)
案例 1。将serverTimezone=UTC添加到jdbc url中
案例 1。将serverTimezone=Asia/Seoul添加到jdbc url中
[11:03:54] [main] [DEBUG] BaseJdbcLogger.debug(143)| ==> Preparing: SELECT ?, ?
[11:03:54] [main] [DEBUG] BaseJdbcLogger.debug(143)| ==> Parameters: 2020-01-01T00:00(LocalDateTime), 2020-01-31T23:59:59.999999999(LocalDateTime)
[11:03:54] [main] [DEBUG] Slf4jSpyLogDelegator.sqlTimingOccurred(368)| com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
1. SELECT 2020-01-01T00:00, 2020-01-31T23:59:59.999999999
{executed in 3 msec}
[11:03:54] [main] [INFO ] Slf4jSpyLogDelegator.resultSetCollected(610)|
|----------------------|----------------------|
|2019-12-31 15:00:00.0 |2020-01-31 15:00:00.0 |
|----------------------|----------------------|
|----------------------|----------------------|
[14:27:16] [main] [DEBUG] BaseJdbcLogger.debug(143)| ==> Preparing: SELECT ?, ?
[14:27:16] [main] [DEBUG] BaseJdbcLogger.debug(143)| ==> Parameters: 2020-01-01T00:00(LocalDateTime), 2020-01-31T23:59:59.999999999(LocalDateTime)
[14:27:16] [main] [DEBUG] Slf4jSpyLogDelegator.sqlTimingOccurred(368)| com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
1. SELECT 2020-01-01T00:00, 2020-01-31T23:59:59.999999999
{executed in 4 msec}
[14:27:16] [main] [INFO ] Slf4jSpyLogDelegator.resultSetCollected(610)|
|----------------------|----------------------|
|2020-01-01 00:00:00.0 |2020-02-01 00:00:00.0 |
|----------------------|----------------------|
|----------------------|----------------------|
第一季度。 java LocalDateTime是用mybatis LocalDateTimeTypeHandler转成jdbc TIMESTAMP的吗?
第二季度。 mybatis LocalDateTimeTypeHandler 是否根据 jdbc servertimezone 设置转换值?
第三季度。为什么我的2020-01-31T23:59:59.999999999 值转换为2020-02-01 00:00:00.0?
【问题讨论】:
-
你的列的数据类型到底是什么?
-
@Basil Bourque 我是
datetime。
标签: java mysql datetime mybatis