2015-10-06 53 views
0

在我公司的前端系統顯示「正確」的日期,但是當我從embarcaderoRapid SQL查詢數據庫時,它顯示日期如下(數據庫)。日期編碼問題

它對我來說是一個問題,因爲在我們的前端視圖中,我們無法對結果進行分組等,我可以在embarcadero中做到這一點。

但我需要明白這個日期「變革」背後的邏輯是什麼?

有什麼想法?

當然,我可以映射它,因爲我想出了什麼是每個月的代碼,但沒有了解,我將不得不爲此每個新月。

front end   database 
01/04/2015 00:000 1427842800000 
01/04/2015 00:000 1427842800000 
01/05/2015 00:000 1430434800000 
01/05/2015 00:000 1430434800000 
01/05/2015 00:000 1430434800000 
01/06/2015 00:000 1433113200000 
01/06/2015 00:000 1433113200000 
01/07/2015 00:000 1435705200000 
01/07/2015 00:000 1435705200000 
01/08/2015 00:000 1438383600000 
01/08/2015 00:000 1438383600000 

編輯:

謝謝你的迴應。 你接近答案。

SQL/EXCEL中是否有任何函數或方法將此時間戳轉換爲我們通常看到的日期?

我也檢查了04/01/2015 @ 12:00am (UTC) == 1427846400.並得到了相同的結果。 不知道爲什麼這發生在我的數據庫顯示1427842800000

回答

0
DECLARE @TS bigint 
Set @TS ='1427842800000' 
SELECT DATEADD(MINUTE,60,DATEADD(MILLISECOND, @TS % 1000, DATEADD(SECOND, @TS/1000, '19700101'))) 

編輯:要考慮的時區

+0

這個給我2015-03-31 23:00:00.000這是不正確的(我的是01.04.2015)。另外我是它的oracle數據庫 - 我應該說在我的第一篇文章中 – rafalbballer

+0

值在數據庫中存儲在UTC。您的前端正在將它們轉換爲特定於您的時區的值。 – Crabster

+0

立即查看@rafalbballer – Crabster

2

我不知道我理解你的問題。

在數據庫中,您將日期存儲爲時間戳,即自1970年1月1日以來的秒數。在你的前臺,日期顯示爲我們通常看到的日期。

請參閱:http://www.unixtimestamp.com/,當我寫這個答案日期是1444122272

編輯:順便說一句,您的前端日期必須在特定的時區,因爲04/01/2015 @ 12:00am (UTC) == 1427846400

0

嘗試從-unixtime() function.Official鏈接here