我有一个 MySQL 数据库,其中一列是类型DATETIME
并将值存储在 IST 中(因为我的服务器时区是IST
)。
我EST
从用户那里得到一个两个字符串,我需要将数据库中的日期部分与该列匹配。
我正在使用这个查询:
SELECT * FROM my_table where date(convert_tz(`myDate`,'+05:30','-05:00'))
between '2012-12-01' and '2012-12-02';
注意:在我的数据库mysql.time_zone
中是空的,这意味着我不能使用strings like
GMT etc in my query, they instructed me to download a package, but I don't want to download it, its fine for me to use
00:05`,因为我将用 Java 构建我的查询。
这个查询运行良好,因为我已经硬编码了时区偏移量(对于EST
.
但我担心这个查询会为属于夏令时的日期提供错误的数据,即EDT
.
那么我如何获得时区差异(意味着它应该返回 '-05:00' 为 EST 和 '-04:00 为 EDT )以便我可以在 java 中构建我的查询字符串时直接使用它们。
我的查询字符串可能如下所示:
SELECT * FROM my_table where date(convert_tz(`myDate`,'+05:30','???'))
between '2012-12-01' and '2012-12-02';
我想要的价值在哪里???使用准备好的语句动态分配。
我正在使用 Joda Time API,但对它知之甚少,它是否有一些东西可以返回给我时区字符串的时区offser。