使用 oracle 将日期时间转换为 asp.net 中的日期
Converting datetime to date in asp.net using oracle
我从我的 jQuery 日期时间选择器中获得了这个日期,我能够检索用户选择的内容,但在 Oracle 中 Datehired
的数据类型是 Date
.
问题是我要如何将其转换为日期,以便将其插入我的数据库?
这是 jQuery 的日期:
string dt = Request.Form[txtDate.UniqueID];
这是我的 jQuery:
<asp:TextBox ID="txtDate" runat="server" ReadOnly = "true"></asp:TextBox>
<script type="text/javascript">
$(function () {
$("[id*=txtDate]").datepicker();
});
</script>
我的插入语句:
string query = "sp_employee_insert";
if (con.State == ConnectionState.Open)
{
con.Close();
}
con.Open();
OracleCommand cmd = new OracleCommand(query, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@in_EMPLOYEEID", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_EMPLOYEENAME", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_STATUS", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_SUPERIORID", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_MANAGERSUPERIORID", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_BFG", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_DATEHIRED", OracleDbType.Date);
cmd.Parameters.Add("@in_DESIGNATION", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_JOBGRADE", OracleDbType.Int32);
cmd.Parameters.Add("@in_EMAILADDRESS", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_PRODUCTLINE", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_STATION", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_MACHINE", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_OPERATIONGROUP", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_ISACTIVE", OracleDbType.Varchar2);
cmd.Parameters["@in_EMPLOYEEID"].Value = txtEMPLOYEEID.Text;
cmd.Parameters["@in_EMPLOYEENAME"].Value = txtEMPLOYEENAME.Text;
cmd.Parameters["@in_STATUS"].Value = txtSTATUS.Text;
cmd.Parameters["@in_SUPERIORID"].Value = txtSUPERIORID.Text;
cmd.Parameters["@in_MANAGERSUPERIORID"].Value = txtMANAGERSUPERIORID.Text;
cmd.Parameters["@in_BFG"].Value = txtBFG.Text;
cmd.Parameters["@in_DATEHIRED"].Value = date;
cmd.Parameters["@in_DESIGNATION"].Value = txtDESIGNATION.Text;
cmd.Parameters["@in_JOBGRADE"].Value = txtJOBGRADE.Text;
cmd.Parameters["@in_EMAILADDRESS"].Value = txtEMAILADDRESS.Text;
cmd.Parameters["@in_PRODUCTLINE"].Value = txtPRODUCTLINE.Text;
cmd.Parameters["@in_STATION"].Value = txtSTATION.Text;
cmd.Parameters["@in_MACHINE"].Value = txtMACHINE.Text;
cmd.Parameters["@in_OPERATIONGROUP"].Value = txtOPERATIONGROUP.Text;
cmd.Parameters["@in_ISACTIVE"].Value = txtISACTIVE.Text;
cmd.ExecuteNonQuery();
Oracle 必须具有处理日期的惊人功能。 to_char
和 to_date
.
假设我有 DAteTime
如下:8/13/2009 12:00:00 AM
所以在您的 SQL 语句中只需使用 to_date 函数。此函数接受 2 个参数。第一个是给定的日期,第二个是格式。
EX :
to_date('" + DTtoOracle.Date.ToString("yyyy-MM-dd") + "','yyyy-mm-dd')
所以我们正在做的是在 datetime 变量的第一个参数上指定格式,在第二个参数上你告诉 oracle 你发送到数据库的格式是什么。
完整示例:
SELECT * FROM MYTABLE WHERE DATEFIELD = to_date('" + DTtoOracle.Date.ToString("yyyy-MM-dd") + "','yyyy-mm-dd');
这应该 return 所有记录,其中您的日期字段 = 与您的变量相同的日期。希望这有帮助。干杯
我从我的 jQuery 日期时间选择器中获得了这个日期,我能够检索用户选择的内容,但在 Oracle 中 Datehired
的数据类型是 Date
.
问题是我要如何将其转换为日期,以便将其插入我的数据库?
这是 jQuery 的日期:
string dt = Request.Form[txtDate.UniqueID];
这是我的 jQuery:
<asp:TextBox ID="txtDate" runat="server" ReadOnly = "true"></asp:TextBox>
<script type="text/javascript">
$(function () {
$("[id*=txtDate]").datepicker();
});
</script>
我的插入语句:
string query = "sp_employee_insert";
if (con.State == ConnectionState.Open)
{
con.Close();
}
con.Open();
OracleCommand cmd = new OracleCommand(query, con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@in_EMPLOYEEID", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_EMPLOYEENAME", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_STATUS", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_SUPERIORID", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_MANAGERSUPERIORID", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_BFG", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_DATEHIRED", OracleDbType.Date);
cmd.Parameters.Add("@in_DESIGNATION", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_JOBGRADE", OracleDbType.Int32);
cmd.Parameters.Add("@in_EMAILADDRESS", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_PRODUCTLINE", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_STATION", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_MACHINE", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_OPERATIONGROUP", OracleDbType.Varchar2);
cmd.Parameters.Add("@in_ISACTIVE", OracleDbType.Varchar2);
cmd.Parameters["@in_EMPLOYEEID"].Value = txtEMPLOYEEID.Text;
cmd.Parameters["@in_EMPLOYEENAME"].Value = txtEMPLOYEENAME.Text;
cmd.Parameters["@in_STATUS"].Value = txtSTATUS.Text;
cmd.Parameters["@in_SUPERIORID"].Value = txtSUPERIORID.Text;
cmd.Parameters["@in_MANAGERSUPERIORID"].Value = txtMANAGERSUPERIORID.Text;
cmd.Parameters["@in_BFG"].Value = txtBFG.Text;
cmd.Parameters["@in_DATEHIRED"].Value = date;
cmd.Parameters["@in_DESIGNATION"].Value = txtDESIGNATION.Text;
cmd.Parameters["@in_JOBGRADE"].Value = txtJOBGRADE.Text;
cmd.Parameters["@in_EMAILADDRESS"].Value = txtEMAILADDRESS.Text;
cmd.Parameters["@in_PRODUCTLINE"].Value = txtPRODUCTLINE.Text;
cmd.Parameters["@in_STATION"].Value = txtSTATION.Text;
cmd.Parameters["@in_MACHINE"].Value = txtMACHINE.Text;
cmd.Parameters["@in_OPERATIONGROUP"].Value = txtOPERATIONGROUP.Text;
cmd.Parameters["@in_ISACTIVE"].Value = txtISACTIVE.Text;
cmd.ExecuteNonQuery();
Oracle 必须具有处理日期的惊人功能。 to_char
和 to_date
.
假设我有 DAteTime
如下:8/13/2009 12:00:00 AM
所以在您的 SQL 语句中只需使用 to_date 函数。此函数接受 2 个参数。第一个是给定的日期,第二个是格式。
EX :
to_date('" + DTtoOracle.Date.ToString("yyyy-MM-dd") + "','yyyy-mm-dd')
所以我们正在做的是在 datetime 变量的第一个参数上指定格式,在第二个参数上你告诉 oracle 你发送到数据库的格式是什么。
完整示例:
SELECT * FROM MYTABLE WHERE DATEFIELD = to_date('" + DTtoOracle.Date.ToString("yyyy-MM-dd") + "','yyyy-mm-dd');
这应该 return 所有记录,其中您的日期字段 = 与您的变量相同的日期。希望这有帮助。干杯