0

毎日のサンプルを含む測定値テーブルがあります。したがって、「日付」という列があります。日付を UNIX タイムスタンプとして選択する必要があります。

現在、私はこれを持っています:

  • 日付列は日付型を使用します
  • 挿入形式は YYYY-MM-DD です
  • 挿入時に、時間ではなく日付のみを気にします(したがって、おそらく UTC YYYY-MM-DD 00:00:00として保存されますか?)
  • サーバーのタイムゾーンは UTC+2

UTC YYYY-MM-DD 00:00:00 (一日の始まり)の UNIX タイムスタンプが必要です。しかし、MySQL は日付を UTC 値として保存し、取得時にサーバーのタイムゾーンに変換しているようです。そう:

SELECT UNIX_TIMESTAMP(`date`) AS `date_stamp` ...

... 実際には、前日の UNIX タイムスタンプ ( YYYY-MM-DD 22:00:00 ) を返します。

そのため、CONVERT_TZ の使用を検討しましたが、Windows サーバーを使用しているため、タイム ゾーンの説明テーブルを構成しない限り、クエリは NULL を返すようです。

SELECT (UNIX_TIMESTAMP(CONVERT_TZ(`date`, 'UTC', 'SYSTEM'))) AS `date_stamp` ...

私はそれを正しくやっていますか?最適な日付形式を使用していますか? 私は最善の方法で変換していますか?

4

1 に答える 1