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

SQL显示数据库中特定日期之间的所有变量,这些日期不是DateTime格式

您可以看到,将日期时间值存储在varchar列中不是一个好主意。如果您需要特定的格式,那么您应该在即将向用户显示该值时对其进行转换。

,但是为了使事情现在工作,你可以改变where子句:

depDate_depTime=CONVERT(date,depDate_depTime,104)

:

depDate_depTime = convert(datetime, left(depDate_depTime, 10) + ' ' + right(depDate_depTime, 8), 104)