SQL显示数据库中特定日期之间的所有变量,这些日期不是DateTime格式
本文关键字:日期 变量 格式 DateTime 数据库 显示 之间 SQL | 更新日期: 2023-09-27 18:08:12
我想在aspx web上显示DB中特定日期之间的所有行和列。但是,日期不以日期或日期时间格式记录。而且似乎不可能将它们转换为日期格式。我试着这样做;
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列中不是一个好主意。如果您需要特定的格式,那么您应该在即将向用户显示该值时对其进行转换。
,但是为了使事情现在工作,你可以改变where子句:
depDate_depTime=CONVERT(date,depDate_depTime,104)
:
depDate_depTime = convert(datetime, left(depDate_depTime, 10) + ' ' + right(depDate_depTime, 8), 104)