szk
1
[やりたいこと]
MySQLから取得したデータを、取得した日付と併せてkintoneに登録しようと考えています。
登録にはembulkを使っているため、SQLのクエリをアレンジして実現したいと考えています。
[発生していること]
SQLのCURDATE()コマンドで取得した日付を、kintoneの日付フィールドに登録したのですが、前日の日付で表示されています。
CURDATE()の実行結果自体は問題なさそうです。
[知りたい事]
MySQLコマンドを利用した日付フィールドへの適切なデータ登録方法
[調べたこと]
日付フィールドの場合
MySQL kintone日付フィールド
‘2023-08-15’ → 2023-08-15
CURDATE() → 2023-08-14
日時フィールドの場合
MySQL kintone日時フィールド
CURDATE() → 2023-08-15 00:00
‘2023-08-15’ → 2023-08-15 9:00
‘2023-08-15T00:00:00Z’ → 2023-08-15 9:00
JST時間を想定したデータが、kintone側でUTC時間として登録されているのかなとも思ったのですが、午後に登録処理を実行しても変わらず前日の日付が登録されていました。
このあたりの仕様詳しいかたいらっしゃいましたらご助言いただけると助かります。よろしくお願いいたします。
jurippe
(jurippe)
2
先に言っておきます。詳しくなくてすみません!
kintone上だけで日付、日時、時刻いじるとき
いつも、UTC?ローカル?どうだっけ?ってなってます
以下、めっちゃなんとなくですが・・・
CURDATE()ってきっと日付データなのでUTC日付で入ってくる?うーんうーん。
もしかしたら日付のデータではなくて、文字列で’2023-08-15’で登録したらいいのかもかもしれませんうーん
間違っているかも知れません。(いや~でもな~試してみないと分からないです)
↓こちらって参考になりますでしょうか
!?
「いいね!」 1
こんにちは、横槍失礼します。
一応 cybozu developer network様でのフィールド形式の説明ではこのように書かれておりますね。
参考URL:kintone REST API の共通仕様 - cybozu developer network
日時(取得するとき)
フォーマット
YYYY-MM-DDTHH:MM:SSZ
補足
たとえば、日本時間(JST)の 2012 年 3 月 22 日 14 時 00 分は、「2012-03-22T05:00:00Z」と表します。
「YYYY-MM-DD」と「HH:MM:SS」の間の「T」や、「HH:MM:SS」の後ろの「Z」は固定値です。
「Z」は UTC を表します。
「T」以降を省略すると、UTC として扱われます。
一覧の設定を取得する API では、日時は UTC で出力されます。
日時(登録または更新するとき)
フォーマット
YYYY-MM-DDTHH:MM:SS±HH:MM
または YYYY-MM-DDTHH:MM:SSZ
補足
たとえば、日本時間(JST)の 2012 年 3 月 22 日 14 時 17 分は、次のように表します。
「2012-03-22T14:17:00+09:00」「2012-03-22T05:17:00Z」
「YYYY-MM-DD」と「HH:MM:SS」の間の「T」や、「HH:MM:SS」の後ろの「Z」は固定値です。
「±HH:MM」には、UTC との時刻の差を指定します。
「T」以降を省略すると、UTC として扱われます。
秒情報を指定して登録または更新を行と、秒情報は無視されます。
たとえば、「2019-02-06T12:59:59Z」と指定すると、「2019-02-06T12:59:00Z」として登録または更新されます。
プラスでKintoneヘルプにもこういう記述がございます。
参考URL:日時 | kintone ヘルプ
日付 及び 時刻フィールドは、タイムゾーンに関わらず登録した時の日付または時刻で表示。
日時フィールドは、ユーザ毎のタイムゾーンに沿って表示。
今回の状況で想像してみると、恐らく(間違っていたら申し訳ないです…)
szkさんのユーザ情報でembulkで登録(タイムゾンーンはJST) → データとしては9時間前を保持している… かなと仮説立ててみましたがどうでしょう。
あとは、MYSQLのタイムゾーンが実はずれて登録されていてタイミングによっては前日の日付を取得するなど…色々考えれることはありそうです。
こちらで参考になるかわかりませんが、ご回答させていただきました。
「いいね!」 2
system
(system)
クローズされました:
4
このトピックは最後の返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。