Bonjour,
J'ai un champ date au format dd/mm/aaaa hh-mm-ss
Je veux sélectionner les données d'une journée sans utiliser between 1/1/2024 00:00:01 and 1/1/2024 23:59:59... car manuel
Je cherche une solution automatique genre avec getdate() -1
Merci
Bonjour,
J'ai un champ date au format dd/mm/aaaa hh-mm-ss
Je veux sélectionner les données d'une journée sans utiliser between 1/1/2024 00:00:01 and 1/1/2024 23:59:59... car manuel
Je cherche une solution automatique genre avec getdate() -1
Merci
mouais la recherche google était sûrement trop épuisante à faire...
Voici une solution - il y a sûrement plus optimal
Code : Sélectionner tout - Visualiser dans une fenêtre à part BETWEEN CAST(CAST(GETDATE() AS DATE) AS DATETIME2(0)) AND DATEADD(SECOND, -1, CAST(DATEADD(DAY, 1, CAST(GETDATE() AS DATE)) AS DATETIME2(0)))
Voici un exemple :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 create table T1 ( T1ID integer primary key , T1DT char(19) not null ) insert into T1 (T1ID, T1DT) values (1, '12/02/2024 09-50-28') , (2, '28/03/2024 14-02-11') , (3, '28/03/2024 18-34-31') , (4, '30/03/2024 07-05-00') ; select T1ID , substring(T1DT, 01, 10) , convert(date, substring(T1DT, 01, 10), 103) , convert(date, getdate(), 103) from T1 where convert(date, substring(T1DT, 01, 10), 103) = convert(date, getdate(), 103)
Résultat :
![]()
Bonjour,
Quand je veux trouver des lignes sur une journée entière, je fais un truc du genre dans Oracle:
Y'a pas un truc équivalent sur SQL Server, avec DATETRUNC par exemple?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select * from t where col_date >= trunc(date_choisie) and col_date < trunc(date_choisie+1);
Le truc ici, c'est que vu que la date est de type char, on ne peut pas appliquer directement une fonction date, il faut d'abord la convertir.
Sinon il existe en effet datetrunc() qui permet de restituer une sous partie d'une date.
Partager