AdaloとExcelによる現在日時シリアル値の誤差について
目次
日付のシリアル値に誤差が出る
ノーコードアプリのAdaloのデータベースの数値フィールドにCurrent Timeが入るようにフォームを設定しました。すると、現在日時がシリアル値が入るのですが、そのシリアル値をエクセルで日付表示すると、登録したつもりの日時と異なる日付となりました。
日時シリアルについて
日時のシリアル値は基準日から何日と何時間経過したかの数値だそうです。
シリアル値 | 起点日時 | |
アダロ | 0 | 1970/1/1 0:00:00 |
エクセル | 0 | 1900/1/0 0:00:00 |
Googelスプレッドシート | 0 | 1899/12/30 0:00:00 |
AdaloではUNIX時間を使用しているからだと思われます。ついでにGoogleスプレッドシートの起点も調べてみると、みんなバラバラでした。
2021/06/21 11:30をシリアル値にすると以下のようになります。
シリアル値 | 日時 | |
アダロ | 18799.10417 | 1951/06/20 2:30 |
エクセル | 44368.47917 | 2021/06/21 11:30 |
Googelスプレッドシート | 44368.4791666667 | 2021/06/21 11:30 |
ExcelとGoogleスプレッドシートは起点となる日付が違うのに、シリアル値は同じでした。
誤差を埋める方法
上記のように、同じ日時でもエクセルでは44368.47917
、adaloでは18799.10417
となり、
44368.47917 - 18799.10417 = 25569.375
計算ではAdaloで取得する日時シリアルは、エクセルやGoogleスプレッドシート上で、25569.375
(25569日と9時間)が足りていません。これでは日付や時間の計算に困ります。
Adaloに入れる計算式
そこで、フォームから更新する値を指定すれば日本時間の日付がフィールドに取得できます。
(Current Time)+25569.375