89 votes

Requête SQL DateTime simple

Comment interroger le champ de base de données DateTime dans une certaine plage?

J'utilise SQL SERVER 2005

Code d'erreur ci-dessous

 SELECT * 
  FROM TABLENAME 
 WHERE DateTime >= 12/04/2011 12:00:00 AM 
   AND DateTime <= 25/05/2011 3:53:04 AM
 

Notez que je dois obtenir des lignes dans une certaine plage de temps. Exemple, intervalle de temps de 10 minutes.

Actuellement, SQL retourne avec une syntaxe incorrecte près de '12'. "

125voto

Alex Aza Points 29204

Vous avez manqué le signe d'une citation

 SELECT * 
FROM TABLENAME 
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
 

De plus, il est recommandé d'utiliser le format ISO8601 AAAA-MM-JJThh: mm: ss.nnn [Z], car celui-ci ne dépendra pas de la culture locale de votre serveur.

 SELECT *
FROM TABLENAME 
WHERE 
    DateTime >= '2011-04-12T00:00:00.000' AND 
    DateTime <= '2011-05-25T03:53:04.000'
 

9voto

Milimetric Points 7539

Vous avez besoin de guillemets autour de la chaîne que vous essayez de transmettre comme date et vous pouvez également utiliser BETWEEN ici:

  SELECT *
   FROM TABLENAME
  WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
 

Voir la réponse à la question suivante pour des exemples sur la conversion explicite de chaînes en dates tout en spécifiant le format:

Sql Server conversion de chaîne en date

6voto

Jamaria Points 11

Cela a fonctionné pour moi dans SQL Server 2005 et 2008:

 SELECT * from TABLE
WHERE FIELDNAME > {ts '2013-02-01 15:00:00.001'}
  AND FIELDNAME < {ts '2013-08-05 00:00:00.000'}
 

1voto

ErikE Points 18233

D'autres ont répondu à cette date littéraux dans SQL Server nécessitent d'être entouré de guillemets, mais je voulais dire que vous pouvez résoudre votre mois/jour mixup problème (où, comme dans ton post, il pense que 25 est le mois et 5 jours) de deux façons:

  1. L'utilisation explicite Convert(datetime, 'datevalue', style) où le style est l'un des numériques codes de style, voir le Cast et Convert. Le paramètre de style n'est pas seulement pour la conversion de dates à cordes, mais aussi pour déterminer la façon dont les chaînes sont analysées pour les dates.
  2. Utiliser une région indépendante de format. Celui que j'utilise est "aaaammjj hh:mm:ss'. Vous pouvez également utiliser l'ISO, yyyy-mm-ddThh:mi:ss.mmm, suivez le lien ci-dessus pour plus de détails, y compris la façon d'inclure les fuseaux horaires.

0voto

Dan Points 11

Ouvrez le fichier d’accès vers lequel vous essayez d’exporter des données SQL. Supprimer toutes les requêtes qui sont là. Chaque fois que vous exécutez l'assistant d'importation SQL Server, même en cas d'échec, il crée une requête dans la base de données Access qui doit être supprimée avant de pouvoir réexécuter l'assistant d'exportation SQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X