我想比較SQL Server(類型datetime-16)和db2/400(類型Z)的日期/時間。比較日期db2/400與SQL Server
通常我想知道有60秒18點44和18:45
之間每一個都有稍微不同的顯示特性。
SQL Server 2016-07-26 18:45:00.000
Db2/400 2016-07-26-18.45.00.000000
如果我這樣做對我的DB2數據庫:
SELECT
MYDATETIME,
'2016-07-26 18:44:00.000',
MYDATETIME - '2016-07-26 18:44:00.000'
FROM @dates
我得到這個
MYDATETIME Constant value Numeric Expression
2016-07-26-18.45.00.000000 2016-07-26 18:44:00.000 100.000000
DB2 SQL顯得相當大方接受略有不同的格式。
但是,查詢告訴我,1分鐘差= 100.看起來我有一個基地10比較發生在這裏。
使用DB2時間戳功能,我得到了相同的結果
SELECT
MYDATETIME,
'2016-07-26 18:44:00.000',
MYDATETIME - timestamp('2016-07-26-18.44.00.000000')
FROM @dates
我怎麼能進行比較,這將使我在幾分鐘(或數小時或數天)的區別?
它實際上[給你一個格式化值(https://www.ibm。 com/support/knowledgecenter/SSEPEK_10.0.0/sqlref/src/tpc/db2z_bif_timestampdiff.html):'100.000000'實際上是'1分鐘','00秒','000000小數秒'。請注意,該值是相對的(即「1個月」),因此可能無用。爲什麼你想要差異呢? –
發條 - 我想問一些問題,比如「自上次運行多久以來」,「向我展示最近24小時的交易」,「提取在昨天下午2點運行,告訴我什麼是新的。」。謝謝 –
你幾乎從不想在查詢中使用差異,因爲它會導致數據庫忽略指示。一般來說,您想構建限制並執行範圍查詢。應用層語言比幾乎所有的RDBMS都有更好的獲取持續時間差異的方法,所以在顯示時間只需要數學計算。你如何試圖在兩個數據庫之間進行通信?爲什麼不通過所需的開始/結束值? –