2012-07-06 136 views
0

目前,我有一個日期時間對象如何更改日期時間對象的日期格式?

DateTime theDateTime = DateTime.ParseExact(dateAndTime, "d MMMM yyyy hh:mm tt", provider); 

它成功地將其轉換爲一個日期時間(從一個字符串)以成爲例如:

2012年7月6日上午9點30分00秒

我如何將其轉換爲2012/07/06 09:30:00(24小時格式)?這樣我可以使用C#將它插入到數據庫中?

PS:我使用的是Sybase SQL Anywhere的12,並從我讀過,他們neeed格式將在年/月/日,並在24小時格式正確的時間?如果我錯了,請糾正我。

回答

0

日期時間本身不具有的格式。日期和時間在內部存儲爲一個數字。通常,數據庫提供者的類將照顧將DateTime轉換爲正確的格式。

如果Sybase只接受格式爲日期格式的日期,則需要使用DateTime.ToString方法並使用correct format string進行格式化。

你如何建立你的INSERT命令?你正在使用數據庫參數還是隻是建立一個包含插入語句的字符串?

+0

嗨安德魯,我正在使用包含插入語句的字符串。像 insertAccount.CommandText =( 「INSERT INTO [meetingMinutes](標題,位置,perioddate,periodtime,就診者,議程,帳戶ID,促進者,日期時間)VALUES('」 +標題+ 「 ''」 +位置+「」, '+ + + +'','+ + +'','+ + +'','+ + +'+'',+ + theDateTime +「)」); 我想嘗試將其更改爲參數之前使用包含字符串元素插入..但現在連使用含元素不會工作.. – melvg 2012-07-06 02:01:10

+0

我真的覺得你應該從一開始就使用參數插入字符串。不應該有任何理由以這種方式構建SQL,如果使用參數,則不需要對日期進行任何格式化。 – 2012-07-06 02:31:27

+0

我做了類似 – melvg 2012-07-06 02:38:13

0

SQL Anywhere的12具有YYYY-MM-DD HH的默認日期格式:NN:SS.SSS

這可被配置/與然而TIMESTAMP_FORMAT數據庫選項改變:

timestamp_format option

設置可以通過SQL永久變了樣:

SET OPTION PUBLIC.timestamp_format = '<format here>'; 

或臨時(每個連接)變了樣:

SET TEMPORARY OPTION timestamp_format = '<format here>'; 

當然,如果你已經在你的代碼中的DateTime對象,你應該能值傳遞到參數化查詢。它不必作爲字符串傳遞。