2013-04-08 45 views
-6

我在mysql數據庫中使用varchar[1000]。我想在該列中存儲日期時間。然後我需要將其轉換爲datatime並將其存儲在varchar中。我們可以轉換和存儲在varchar我們如何隱藏字符串日期時間並將其存儲在varchar

對不起,如果有任何錯誤。任何幫助表示讚賞

+7

爲什麼要將'datetime'作爲'varchar'存儲?這就是爲什麼有'datetime'數據類型。 – Taryn 2013-04-08 13:05:17

+0

讓我們清除它,如果你想將它保存在日期時間列中,只需以 的格式發送它,並且如果你想將它保存爲一個varchar,它將無關緊要,以任何格式發送它 – 2013-04-08 13:06:48

+0

@bluefeet I將有單列保存整數,字符串和日期時間 – Pa1 2013-04-08 13:07:03

回答

0

正如評論中提到的其他人一樣,你真的應該在這裏重新考慮你的方法。但是,varchar需要一個字符串,而不是日期時間,因此只需保存datetime值的string表示形式,無需進行任何轉換。

0

做一個varchar(10)也許 ,然後在你的C#代碼:

date.ToString("yyyy/MM/dd"); 

可以格式化你的日期這樣的。

+0

像OP這樣的聲音已經具有字符串表示形式,而不是'DateTime'。 – Sam 2013-04-08 13:18:20

1

要清楚,你在而不是varchar列中存儲DateTime值。您正在存儲字符串值。這些字符串值可能包含數字字符或特定的字符序列,人們可能會將其解釋爲某些特定的(如日期和/或時間),但它們仍然只是字符串。

因此,爲了將值轉換爲字符串,您需要從the .ToString() method開始。對於基本類型(如整數和日期時間值),這將返回該類型的字符串表示形式。對於複雜類型,它將返回類的名稱,因此您需要在該類中重寫它。

您可以使用custom string formatting進一步優化日期和時間值的字符串表示形式。

0

varchar(1000)是沒有意義的。如果您將日期和時間存儲爲字符串,則不需要超過15-20個字符(可能更少,這取決於日期格式)。

您應該使用CAST運營商爲datetime值轉換爲字符串:

CAST(dt AS varchar) 

如果你需要生成,從幾個領域結合數據輸出,您可能需要使用相結合的值的視圖你想放在一起,而不是專門在數據表中使用1000個字符的字段。 (提示:使用concat()函數連接多個字符串。)

+0

我不僅存儲'datetime'。根據要求,它可能是'整數'或'1000'字符的文本。這就是爲什麼它專用於'varchar(1000)' – Pa1 2013-04-09 05:09:42

+0

請參閱我的關於爲此目的使用視圖的說明。 – bwDraco 2013-04-09 11:25:49

相關問題