我在mysql數據庫中使用varchar[1000]
。我想在該列中存儲日期時間。然後我需要將其轉換爲datatime
並將其存儲在varchar
中。我們可以轉換和存儲在varchar
。我們如何隱藏字符串日期時間並將其存儲在varchar
對不起,如果有任何錯誤。任何幫助表示讚賞
我在mysql數據庫中使用varchar[1000]
。我想在該列中存儲日期時間。然後我需要將其轉換爲datatime
並將其存儲在varchar
中。我們可以轉換和存儲在varchar
。我們如何隱藏字符串日期時間並將其存儲在varchar
對不起,如果有任何錯誤。任何幫助表示讚賞
正如評論中提到的其他人一樣,你真的應該在這裏重新考慮你的方法。但是,varchar
需要一個字符串,而不是日期時間,因此只需保存datetime
值的string
表示形式,無需進行任何轉換。
做一個varchar(10)也許 ,然後在你的C#代碼:
date.ToString("yyyy/MM/dd");
可以格式化你的日期這樣的。
像OP這樣的聲音已經具有字符串表示形式,而不是'DateTime'。 – Sam 2013-04-08 13:18:20
要清楚,你在而不是在varchar
列中存儲DateTime
值。您正在存儲字符串值。這些字符串值可能包含數字字符或特定的字符序列,人們可能會將其解釋爲某些特定的(如日期和/或時間),但它們仍然只是字符串。
因此,爲了將值轉換爲字符串,您需要從the .ToString()
method開始。對於基本類型(如整數和日期時間值),這將返回該類型的字符串表示形式。對於複雜類型,它將返回類的名稱,因此您需要在該類中重寫它。
您可以使用custom string formatting進一步優化日期和時間值的字符串表示形式。
varchar(1000)
是沒有意義的。如果您將日期和時間存儲爲字符串,則不需要超過15-20個字符(可能更少,這取決於日期格式)。
您應該使用CAST
運營商爲datetime
值轉換爲字符串:
CAST(dt AS varchar)
如果你需要生成,從幾個領域結合數據輸出,您可能需要使用相結合的值的視圖你想放在一起,而不是專門在數據表中使用1000個字符的字段。 (提示:使用concat()
函數連接多個字符串。)
爲什麼要將'datetime'作爲'varchar'存儲?這就是爲什麼有'datetime'數據類型。 – Taryn 2013-04-08 13:05:17
讓我們清除它,如果你想將它保存在日期時間列中,只需以 的格式發送它,並且如果你想將它保存爲一個varchar,它將無關緊要,以任何格式發送它 – 2013-04-08 13:06:48
@bluefeet I將有單列保存整數,字符串和日期時間 – Pa1 2013-04-08 13:07:03