[英]Trying to convert string format (dd-mm-yyyy hh:mm:ss) in (yyyy-mm-dd hh:mm:ss) date format
我正在以這種格式的字符串變量從字符串中捕獲來自oracle的日期string val1 = "30-03-2019 16:42:58"
並嘗試以(datetime)格式將其存儲在sql數據庫中,例如val2 = "2019-03-03 16:42:58.000"
從Oracle DB中將日期存儲在字符串變量中
string val2 = row["t_in_o"].ToString();
並像這樣插入sql
myCommand.Parameters.AddWithValue("@t_in_s",val2);
預期
string val2="30-03-2019 16:42:58"
字符串變量val2應該存儲在日期變量date_V中,作為date_V="2019-03-03 16:42:58.000"
錯誤消息從nvarchar數據類型到datetime數據類型的轉換導致值超出范圍。 該語句已終止。
您需要先將日期字符串轉換為datetime。
string val2= row["t_in_o"].ToString();
Datetime date = DateTime.Parse(val2);
myCommand.Parameters.Add("@t_in_s", SqlDbType.DateTime).Value = date;
Oracle日期實際上沒有格式。
如果要在數據庫中存儲字符串,只需告訴oracle它是一個帶有to_date
的日期
insert into Mytable (thedate)
values
(to_date(:stringval1, 'DD-MM-YY HH24:MI:SS'))
首先請注意,您試圖以毫秒為單位向SQL數據庫存儲值,但是沒有從oracle獲取的字符串形式(由於發布摘要),因此該值始終為.000。
但是您可以使用以下代碼完成此操作:
string val2 = DateTime.ParseExact(row["t_in_o"].ToString(), "dd-MM-yyyy HH:mm:ss",
CultureInfo.InvariantCulture)
.ToString("yyyy-MM-dd HH:mm:ss.fff");
請注意,我不知道將值存儲在row["t_in_o"]
類型是什么,因此我將其視為string
,如果您已將該值轉換為DateTime
,則只需刪除無用的Convert.ToDataTime
並使用row["t_in_o"].ToString("yyyy-MM-dd HH:mm:ss.fff");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.