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
PAGETOP