2017-03-27 126 views
1

嗨我想從SQL表中獲取日期,但每當我得到它,它隨時間返回。即使在數據庫表中它沒有時間。c#sql日期沒有時間返回

 con.Open(); 
     OdbcCommand cmd = con.CreateCommand(); 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "Select I_InvoiceNo, I_Date from tblOrdInvoice where O_OrderNo = '" + orderNoTxt.Text + "'"; 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
     DataTable dt = new DataTable(); 
     OdbcDataAdapter sda = new OdbcDataAdapter(cmd); 
     sda.Fill(dt); 
     foreach (DataRow dr in dt.Rows) 
     { 
      invoiceNoTxt.Text = dr["I_InvoiceNo"].ToString(); 
      invoiceDateTxt.Text = dr["I_Date"].ToString(); 
     } 

該日期正在返回爲「2017/3/27 00:00:00」。我只想要日期。請任何幫助。

+1

這是一個淨時間。轉換爲DateTime,然後轉換爲ToString(「dd/MM/yyyy」) – Steve

+2

注意,您的查詢對SQL注入開放。 –

+0

列I_Date的格式是什麼? –

回答

1

更改代碼:

string dateFormat = "dd-MMM-yyyy"; 
invoiceDateTxt.Text = dr.Field<DateTime>("I_Date").ToString(dateFormat); 

更改您的dateFormat變量任何你喜歡的格式。

+0

當我嘗試對於另一個函數,我得到一個錯誤。 orderDateTxt.Text = dt.Rows [0] [「O_OrderDate」]。ToString(); – ZeeSoft

+0

@ZeeSoft試試這個:'dt.Rows [0] .Field (「I_Date」)。ToString(「dd-MMM-yyyy」)' – Sadique

+0

yup,working - brilliant thanks! – ZeeSoft

0

您可以將DateTime轉換爲代碼端所需的任何格式。 例如通過使用:

invoiceDateTxt.Text = dr["I_Date"].ToString("dd/MM/yyyy"); 

或者,如果你想從MySQL只獲取日期部分,那麼你可以使用類似如下:

SELECT CONVERT(VARCHAR(10), GETDATE(), 112) 'Date Part Only' 

RESULT: 
Date Part Only 
-------------- 
20170327 
Example 2: 

SELECT CONVERT(VARCHAR(10), GETDATE(), 111) 'Date Part Only' 

RESULT: 
Date Part Only 
-------------- 
2017/03/27 

欲瞭解更多詳情,請訪問該link

+0

服務器端的字符串格式通常是一個錯誤。服務器不知道客戶端的區域設置。 –