DATETIME
1つの列がタイプであり、値をISTに格納するMySQLデータベースがあります(サーバーのタイムゾーンはIST
)。
EST
データベースの日付部分をその列と一致させる必要があるユーザーから2つの文字列を取得しています。
私はこのクエリを使用しています:
SELECT * FROM my_table where date(convert_tz(`myDate`,'+05:30','-05:00'))
between '2012-12-01' and '2012-12-02';
注:データベースmysql.time_zone
が空であるということは、Javaでクエリをフレーミングするため、 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`を使用できないことを意味します。
タイムゾーンオフセット(の)をハードコーディングしたので、このクエリは正常に実行されEST
ます。
しかし、このクエリでは、日中のタイミングに該当する日付、つまりのデータが間違って表示されるのではないかと心配していますEDT
。
では、Javaでクエリ文字列を作成するときに直接使用できるように、タイムゾーンの差を取得するにはどうすればよいですか(ESTの場合は「-05:00」、EDTの場合は「-04:00」を返す必要があります)。
私のクエリ文字列は次のようになります:
SELECT * FROM my_table where date(convert_tz(`myDate`,'+05:30','???'))
between '2012-12-01' and '2012-12-02';
???の値が必要な場所 プリペアドステートメントを使用して動的に割り当てられます。
私はJodaTimeAPIを使用していますが、特定のタイムゾーン文字列のタイムゾーンオフサーを返すことができるものがあるかどうかについてはあまり知識がありません。