Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在尝试将字符串格式(dd-mm-yyy-hh:mm:ss)转换为(yyy-mm-dd-hh:mm:ss)日期格式_C#_Sql_Oracle - Fatal编程技术网

C# 正在尝试将字符串格式(dd-mm-yyy-hh:mm:ss)转换为(yyy-mm-dd-hh:mm:ss)日期格式

C# 正在尝试将字符串格式(dd-mm-yyy-hh:mm:ss)转换为(yyy-mm-dd-hh:mm:ss)日期格式,c#,sql,oracle,C#,Sql,Oracle,我正在用这种格式的字符串变量从oracle捕获日期 string val1=“30-03-2019 16:42:58”并尝试将其以(日期时间)格式存储在sql数据库中,例如val2=“2019-03-03 16:42:58.000” 将oracle数据库中的日期存储在字符串变量中 string val2 = row["t_in_o"].ToString(); 并像sql一样插入 myCommand.Parameters.AddWithValue("@t_in_s",val2); 期望 str

我正在用这种格式的字符串变量从oracle捕获日期
string val1=“30-03-2019 16:42:58”
并尝试将其以(日期时间)格式存储在sql数据库中,例如
val2=“2019-03-03 16:42:58.000”

将oracle数据库中的日期存储在字符串变量中

string val2 = row["t_in_o"].ToString();
并像sql一样插入

myCommand.Parameters.AddWithValue("@t_in_s",val2);
期望

string val2="30-03-2019 16:42:58"
字符串变量val2应存储在 日期变量日期\u V as
date\u V=“2019-03-03 16:42:58.000”

错误消息 nvarchar数据类型转换为datetime数据类型导致值超出范围。
语句已终止。

Oracle日期实际上没有格式

如果要在数据库中存储字符串,只需告诉oracle这是一个日期,日期为
to\u date

insert into Mytable (thedate)
values 
(to_date(:stringval1, 'DD-MM-YY HH24:MI:SS'))

Oracle日期并没有真正的格式

如果要在数据库中存储字符串,只需告诉oracle这是一个日期,日期为
to\u date

insert into Mytable (thedate)
values 
(to_date(:stringval1, 'DD-MM-YY HH24:MI:SS'))

您需要首先将日期字符串转换为datetime

string val2= row["t_in_o"].ToString(); 
Datetime date = DateTime.Parse(val2);

myCommand.Parameters.Add("@t_in_s", SqlDbType.DateTime).Value = date;

您需要首先将日期字符串转换为datetime

string val2= row["t_in_o"].ToString(); 
Datetime date = DateTime.Parse(val2);

myCommand.Parameters.Add("@t_in_s", SqlDbType.DateTime).Value = date;

首先请注意,您试图用毫秒将值存储到SQL数据库中,但您没有从oracle获得的字符串中的值(由于post summary),因此它将始终为.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");

请注意,我不知道您将值存储在
行[“t_in_o”]
中的类型,因此我将其计为
字符串
,如果您将此值转换为
日期时间
,则只需删除无用的
Convert.ToDataTime
并使用
行[“t_in_o”]。ToString(“yyyyy-MM-dd HH:MM:ss.fff”)

首先请注意,您试图以毫秒为单位将值存储到SQL数据库中,但您没有从oracle获得的字符串中的值(由于post summary),因此它将始终为.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");


请注意,我不知道您将值存储在
行[“t_in_o”]
中的类型,因此我将其计为
字符串
,如果您将此值转换为
日期时间
,则只需删除无用的
Convert.ToDataTime
并使用
行[“t_in_o”]。ToString(“yyyyy-MM-dd HH:MM:ss.fff”)

为什么要通过C#传递数据?听起来这两个操作都应该是一个SQL语句。@GordonLinoff实际上我的要求是从oracle db中获取值并将其存储在SQL db中,并且每5分钟计划一次oracle和SQL server中的列类型是什么?@sidprashar它的类型是DateTime为什么要通过C#传递数据?听起来这两个操作都应该是一个SQL语句。@GordonLinoff实际上我的要求是从oracle db中获取值并将其存储在SQL db中,并且每5分钟计划一次oracle和SQL server中的列类型是什么?@sidprashar它是DateTime类型这是在oracle中执行的方法,如果您不想先在C#中执行。旁注:如果使用
值(日期“2019-03-30”)
形式的,则Oracle日期确实有一种格式。但是这个符号只支持日期,不支持时间。如果你不想先在C#中使用,这是在Oracle中使用的方法。旁注:如果使用
值(日期“2019-03-30”)
形式的,则Oracle日期确实有一种格式。但是这个符号只支持日期,不支持时间。而且,Oracle中的
date
类型没有毫秒分辨率。您需要
时间戳
。但是阅读这个问题,我怀疑这是否是一个要求。@GolezTrol在这种情况下,它真的很奇怪,如果你没有毫秒,你不应该将它们粘贴到SQL,让SQL自己处理它们,如果需要的话,添加.000。或者更改列的类型并使用
时间戳
。同样,在SQL
date
type中也没有毫秒(它甚至没有小时),所以这也需要更改为
datetime
,我认为你把事情搞混了。Oracle的日期类型表示日期+时间,精度高达1秒。列没有datetime类型。关于
datetime
我刚才提到的列的类型SQLSQL只是一个标准。这取决于具体的执行情况。在本例中,它是关于Oracle的,它没有日期时间类型,只有日期类型,实际上也可以包含时间部分。在标准SQL中有不同的日期和时间相关类型。而且,Oracle中的
date
类型没有毫秒分辨率。您需要
时间戳
。但是阅读这个问题,我怀疑这是否是一个要求。@GolezTrol在这种情况下,它真的很奇怪,如果你没有毫秒,你不应该将它们粘贴到SQL,让SQL自己处理它们,如果需要的话,添加.000。或者更改列的类型并使用
时间戳
。同样,在SQL
date
type中也没有毫秒(它甚至没有小时),所以这也需要更改为
datetime
,我认为你把事情搞混了。Oracle的日期类型表示日期+时间,精度高达1秒。列没有datetime类型。关于
datetime
我刚才提到的列的类型SQLSQL只是一个标准。这取决于具体的执行情况。在本例中,它是关于Oracle的,它没有日期时间类型,只有日期类型,实际上也可以包含时间部分。在标准SQL中,有不同的日期和时间相关类型。