2012-04-05 23 views
2

MS Accessプログラムに数十のMySQLテーブルがリンクされています。これらのテーブルを集めて人間の方法でデータを提供し、特にタイムスタンプをmm/dd/yyyy形式に変換するクエリが十数個あります。MS Accessでタイムスタンプを人間が読めるように変換する

私はタイムスタンプhttp://www.unixtimestamp.com/index.phpをテストしている)が、以下の次のコードは、日付を生成します。それは何が起こっているか2012年4月24日

SELECT date_promised, DateAdd('s', 1335312000, #1/1/1970#) AS date_promised2 FROM erp_workorder AS t1 WHERE id_primary = 73135;

する必要があります修正されていない2012年4月25日ここに?

よろしく、 アレックス

+0

あなたの日付は、UNIXタイムスタンプまたはdatetimeとして保存されていますか? – nnichols

+0

http://excel.tips.net/T002051_Converting_UNIX_Date_Time_Stamps.htmlはどうですか? – Fionnuala

+1

UnixタイムスタンプはUTCです。あなたのコードは現地のタイムゾーンに変換されていますか? 1335312000は英国では2012/04/24、米国では2012/04/25です。 –

答えて

0

date_promisedフィールドには、使用可能なDATETIME型の場合 - date_promisedフィールドは、使用することができますUnixタイムスタンプが含まれている場合

SELECT date_promised, DATE_FORMAT(date_promised, '%m/%d/%Y') AS date_promised2 
FROM erp_workorder AS t1 
WHERE id_primary = 73135; 

-

SELECT date_promised, DATE_FORMAT(FROM_UNIXTIME(date_promised), '%m/%d/%Y') AS date_promised2 
FROM erp_workorder AS t1 
WHERE id_primary = 73135; 
+0

日付はunixのタイムスタンプとして保存されています。MYSQL DATETIMEではなく、PHPで同様のフォーマットでよく似ていますが、何らかの理由でAccessに一日追加したいと思うのは普通のジェーン整数です:( –

+0

TO clarish .. 。テーブルはタイムスタンプ付きのMySQLテーブルとして保存されています...アクセスアプリケーションはクエリ/ビューを使用してデータをパースペクティブに表示します。クエリのSELECTステートメントはAccess not MySQLで行わなければなりません。 –

+0

MS Accessで非標準クエリを強制することができると思いました。そうでない場合は、MySQLでいくつかのビューを作成して、必要な出力を生成し、Accessからビューを照会することができます。 – nnichols

1

クエリ内のDateAdd()式は、Unixタイムスタンプの日付/時刻に相当するものを要求します。 UTC時刻はです。

? DateAdd("s", 1335312000, #1/1/1970#) 
4/25/2012 

明示的に時刻を表示する形式を拡張します。

あなたがそのウェブページ上のボックスに自分のタイムスタンプを接続すると、その後、ボタン「変換」をクリックし、それはあなたにこの値与え
? Format(DateAdd("s", 1335312000, #1/1/1970#), "yyyy-mm-dd hh:nn:ss") 
2012-04-25 00:00:00 

:以前の形式を使用して

04/24/12 @ 7:00:00pm EST 

を...

2012-04-24 19:00:00 

今、同じ瞬間のこれらの2つの異なる表現を比較します。

2012-04-25 00:00:00 (UTC) 
2012-04-24 19:00:00 (EST) 

UNIXタイムスタンプを任意のタイムゾーンのオフセットで表示する場合は、その変換を適用します。

関連する問題