2013-07-03 48 views
0

我有一個存儲過程,我想在上一個「ORDER BY DateTime DESC」中進行計算;「聲明。在某種意義上,在「ORDER BY」的查詢中,我希望能夠從DB中的列中添加分鐘到DateTime。所以這個想法就像「ORDER BY variable =(DateTime + 15 *'offsettime」)DESC;「。我希望有一個解決辦法,有人可以幫助我,因爲我不是數據庫專家。你提前使用「ORDER BY」動態計算的存儲過程

+1

請參閱http://stackoverflow.com/questions/8591526/t-sql-sorting-by-a-calculated-column – Ronnie

+0

您正在使用哪些DBMS? Postgres的?甲骨文? –

回答

0
SELECT 
YOUR COLUMNS, (DateTime + 15 * 'offsettime') calculation 
FROM YOUR_TABLE order by 2 

更新時間:

由於您的要求是,提取日期時間分鐘,做算術運算,就在甲骨文EXTRACT功能,可以幫助你

 SELECT 
    YOUR COLUMNS, (EXTRACT(MINUTE FROM DateTime) + 15 * 'offsettime') 
    calculation FROM YOUR_TABLE order by 2 

注意:這裏假設你的db是Oracle,因爲你沒有談論它。

+0

「offsettime」是數據庫表中具有值的顏色。這些在幾分鐘內,我需要將它們添加到分鐘DateTime。這可能嗎? –

+0

你正在使用哪個數據庫? – Mari

0

大多數SQL版本都支持該標準,您可以在order by子句中包含來自select語句的列別名。所以,如果您有:

select t.*, (DateTime + 15 * offsettime) as variable 
from t 
order by variable desc; 

此外,幾乎所有SQL版本允許你有order by子句中的計算:

select t.* 
from t 
order by (DateTime + 15 * offsettime) 

最後,我不知道你是什麼意思通過'offsettime"。您不需要列名稱附近的任何引號。如果你包含它們,它們應該是雙引號而不是單引號。單引號表示一個字符串常量。

+0

「offsettime」是數據庫表中具有值的顏色。這些在幾分鐘內,我需要將它們添加到分鐘DateTime。這可能嗎? –

+0

@PavanWelihinda。 。 。如何爲日期時間添加時間取決於數據庫。我假設你的問題中的算術適用於你想要的數據庫,因爲你沒有用數據庫標記問題。 –

+0

我的日期時間戳記是「2012-05-30 18:27:14」格式。通過你如何顯示,可以準確地添加分鐘? –