日付のシリアル値に誤差が出る
ノーコードアプリの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