在SQLite中转换日期?

时间:2017-12-12 11:04:57

标签: sqlite

我使用SQL Server创建了一个调度程序应用程序,现在我想使用SQLite创建另一个。我在SQL中有一个转换查询,它在SQLite中不起作用。有人可以帮忙吗?

try
        {
            ObservableCollection<Classes.EventClass> listEvents = new ObservableCollection<EventClass>();

            SQLiteConnection conn = new SQLiteConnection(@"Data Source=Scheduler.db;Version=3;"); 

            string query= "Select * from Sche_Event where CONVERT(DATE,Event_TimeFrom) = CONVERT(DATE,'"  +d.ToString("yyyy-MM-dd HH:mm:ss") + "') ORDER BY Event_TimeFrom ASC";


            SQLiteCommand command= new SQLiteCommand(query, conn); 

            conn.Open();
            SQLiteDataReader dr = command.ExecuteReader();

            while (dr.Read())
            { 
                EventClass dog = new EventClass();

                dog.DogID = dr.GetInt32(0);
                dog.DogName = dr.GetString(1);
                dog.DogText = dr.GetString(2);
                dog.DogPriority = dr.GetInt32(3);
                dog.DogTimeFrom = dr.GetDateTime(4);
                dog.DogTimeTo = dr.GetDateTime(5);
                dog.KliID = dr.GetInt32(6);

                listEvents .Add(dog);
            }
            return listEvents ;

        }
        catch (Exception)
        {
            return null;
        }

我希望我的代码转到While()并读取有关Event的信息,但所有它都会转到Catch()并且不返回任何内容。

SQL中的查询工作正常,但我不能使用SQLite :(

1 个答案:

答案 0 :(得分:0)

当然,该语句在SQLite中不起作用,因为convert()不是那里的已知函数。但是如果你很幸运,你根本不需要它,具体取决于时间戳存储在SQLite表中的格式。由于您没有提供任何样本数据,也没有描述您actually want to do的内容,您可以阅读SQLite doc about date and time functions或将您的问题改为“如何在SQLite中执行X?”。