Условие C # SQL где с датой
<pre lang="text"> Hello, I have some concerns in an SQL request. A la base j’ai une base de donnes Sqlite avec des dates au format texte comme ceci (21/02/2020). J’affiche mes résultat dans un Datagridview avec cette requête : Basically I have a Sqlite database with dates in text format like this (02/12/2020). I display my results in a Datagridview with this query:
string SQL_Tbl_P4_Cmde = "SELECT * FROM Tble_Commande INNER JOIN Tble_Demande ON" + " (Tble_Demande.dmd_ID = Tble_Commande.cmd_ID) WHERE Tble_Commande.Annee = '" + Annee_en_Cour + "'" + "AND (Reference LIKE '%" + Txt_P4_recherche_Ref.Text + "%' OR Reference IS NULL)" + "AND (Designations LIKE '%" + Txt_P4_recherche_Article.Text + "%' OR Designations IS NULL)" + "AND (Date_prise_compte_cmds LIKE '% + Txt_P4_recherche_Date.Text + "%' OR Date_prise_compte_cmds IS NULL)" + "AND (Lieu_livraison LIKE '%" + Cbo_P4_recherche_lieu.Text + "%' OR Lieu_livraison IS NULL)" + "AND (Imputation LIKE '%" + Cbo_P4_recherche_Imput.Text + "%' OR Imputation IS NULL)" + "AND (Type_cmds LIKE '%" + Cbo_P4_recherche_TypeCmds.Text + "%' OR Type_cmds IS NULL)";
Recently I changed the date format of my columns like this (2020-02-12) I encountered problems with this line of code:
"AND (Date_prise_compte_cmds LIKE '% + Txt_P4_recherche_Date.Text + "%' OR Date_prise_compte_cmds IS NULL)" +
I modified by this new line like this: (To find the error I replaced my textbox with a concrete date.)
"AND (Date_prise_compte_cmds LIKE '2020-02-12%' OR Date_prise_compte_cmds IS NULL)" +
This is the problem, if I note the complete date as ('2020-02-12%') it does not work.
Si je note la date comme ('2020-02-1%' ) ça fonctionne un peu ! Here is the error message : The index was out of range. It must not be negative and must be less than the size of the collection. Parameter name: index Who can help me ? Thank you
Что я уже пробовал:
"AND (Date_prise_compte_cmds LIKE '2020-02-12%' OR Date_prise_compte_cmds IS NULL)" +
phil.o
Почему вы храните даты в виде строк? Есть реальная проблема, которую вы должны решить как можно скорее.
Всегда используйте правильный тип данных; или будьте готовы к низкой производительности и частым кошмарам отладки.
LSB71
Как я должен хранить их в своей базе данных Sqlite?
Richard MacCutchan
Используйте один из типов дат для SQLite, как описано в документации.