2013-06-22 39 views
0

我要插入日期和時間到數據庫在這樣的格式:獲取日期和時間的修整方法

「2013年5月20日5:45」

,如果我想在格式顯示它2分鐘前,就在剛纔,或6個月前等等,我怎麼能做到這一點.. :)

任何一個可以建議我如何提前做這個請,

感謝。

+3

使用'DATE'列? –

+3

您爲什麼要*想將日期/時間值作爲文本存儲在數據庫中?這是IMO的根本錯誤。 –

+1

您應該將數據存儲在數據庫中,並將格式保留至用戶界面。 – Tim

回答

1

雖然它完全錯誤的存儲日期/時間數據作爲字符串,您可以使用ToString超負荷指定格式:

var stringedDate = DateTime.Now.ToString("dd MM',' yyyy 'at' H':'mm"); 
+0

請你讓我知道爲什麼它錯誤的存儲日期/日期時間作爲字符串在DB .. –

+0

@Kaushik 1)你可以有'datetime'類型的索引。 2)'datetime'類型只需要4個字節的內存。 3)你可以重新格式化'datetime'類型爲字符串,因爲你想要的。 4)你可以使用'日期'類型只有3個字節的內存。 5)你可以用'datetime'類型來排序你的行。 6)你可以比較'datetime'類型。 7)你可以添加和減去'日期時間'類型。 – AgentFire

+0

@AgentFire ..謝謝..幫助.. :) –

1

數據庫中存在存儲數據,並讓你問和回答的問題他們。應用程序來來去去;數據可能永遠持續。那麼,你可能會問什麼樣的問題?當然,我們不知道問題領域,所以這些只是猜測。

我們沒有多少訂單履行在過去的7天?

SELECT COUNT(*) "Orders last week" FROM ORDERS 
WHERE 
    orderDate >= SYSDATE - 7 -- Oracle code 

如果您啓用日期爲一個字符串,你不能做到這一點。

誰逾期圖書?哪個?

SELECT u,id, u.first_name, u.last_name, b.id, b.book_name 
FROM User u 
JOIN Book b ON u.id = b.borrower_id 
WHERE b.due_date < SYSDATE 
AND b.returned = 0 -- Oracle doesn't have "BOOLEANS" yet. 

你可以做日期計算;從日期數據中加上或減去一個數字會給出數天或更早的日期。有些功能會給出「在約會之後的下個星期二」或「第一年」。將日期存儲爲字符串會使所有關閉。

假設你需要格式化你的日期爲貴公司的法國分部。你可以用你的日期字符串嗎?爲應用程序保留格式,而不是數據庫。

這是的模型 - 視圖 - 控制器體系結構的重要性的實例。模型,即保存數據的部分應該獨立於任何特定的應用程序,因此它可以與任何應用程序一起工作,並且數據庫當然是模型的一部分。

我不知道C#,但存在於SQL-Server中,我猜你會使用類似的代碼。