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.
ça va sans dire !
Je suis en audit sur le modèle de données d'un éditeur de logiciel.... pas des moindres... bilan 3607 colonnes date sous forme de chaines de caractères !!!
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Je ne sais pas ce qu'on enseigne dans les écoles d'informatique, mais vu le nombre de fois où l'on trouve des dates de type char, des varchar très courts (typiquement varchar(1) !) et pire, des PK fonctionnelles et instables, il y aurait beaucoup de choses à revoir dans les programmes !
L'un des clients chez lesquels j'interviens utilise un logiciel du marché dans lequel aucune date n'est de type date et tous les identifiants sont des multicolonnes fonctionnelles de type varchar long
En 2024, nous en sommes encore là...
On avait fait un SQL frog sur les pires choses que l'on avait vu dans les bases de données de SQL Server.... la vidéo doit peut-être être encore en ligne...
https://www.datafrogs.org/blog/dataf...erverNostalgie
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager