我想在aspx網站上的特定日期之間顯示我DB中的所有行和列。但是,日期不會以日期或日期時間格式記錄。它似乎不可能將它們轉換爲日期格式。我嘗試這樣做;SQL在特定日期之間顯示所有不在DateTime格式中的特定日期的變量
public DataTable DisplayRecord()
{
var reqID = Request.QueryString["MyId"].ToString();
//Date parsing
String[] ids = reqID.Split('-');
String date1 = ids[0];
String date2 = ids[1];
String provider = ids[2];
SqlDataAdapter Adp = new SqlDataAdapter("SELECT * FROM flightLogs WHERE depDate_depTime=CONVERT(date,depDate_depTime,104) AND depDate_depTime BETWEEN CONVERT(date,'" + date1 + "',104)" +
" AND CONVERT(date,'" + date2 + "',104)", connection);
/*SqlDataAdapter Adp = new SqlDataAdapter("SELECT F.PNR, C.amount, F.provider, F.depDate_depTime FROM flightLogs F INNER JOIN companyLogs C ON F.PNR = C.PNR"+
" WHERE F.depDate_depTime=CONVERT(date,F.depDate_depTime,104) AND F.depDate_depTime BETWEEN CONVERT(date,'" + date1 + "',104)" +
" AND CONVERT(date,'" + date2 + "',104) AND F.provider='" + provider + "' ORDER BY F.depDate_depTime ASC", connection);*/
DataTable Dt = new DataTable();
Adp.Fill(Dt);
FlightMonitor.DataSource = Dt;
FlightMonitor.DataBind();
return Dt;
}
,但我得到這個錯誤;
「從字符串中轉換日期和/或時間時轉換失敗。」
此外,我的數據庫中的數據也是這樣顯示的;
origin destination deptDate_depTime PNR flightno provider
KBP AMS 18.09.2015 - 17:35:00 5RQZ43 PS712 Amadeus
ATH FRA 10.07.2015 - 12:30:00 ZFY8XW PS716 PGS
您的數據庫日期時間格式 - 它是存儲爲VARCHAR?這是一個固定的格式? – Paddy
是的,它被存儲爲一個varchar格式。 –
爲什麼要將'DateTime'值保存爲字符串?你爲什麼不把它們保存在'datetime'或'datetime2'類型中? http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data-type.aspx –