Sybase date de la comparaison, bon format?
Je suis assez nouveau pour Sybase et suis en train d'écrire une requête pour renvoyer des résultats après une date déterminée, et aussi avant une date spécifiée. MM/JJ/AAAA format
Au moment im faire..
SELECT *
From aTable
WHERE afterDate >= 08/07/2013
AND beforeDate <= 08/08/2013
Je suis l'obtention d'enregistrements de retour, mais comme je suis une Sybase newbie, je veux être sûr de Sybase est l'interprétation de ces dates correctement..
En ligne de la doc est assez mauvais pour des explications simples sur des choses comme ça!
Toute personne en mesure de confirmer si ce que j'ai fonctionne, ou est-il besoin d'une mise en forme ronde de la date?
Quelque chose de pas mentionné dans les réponses jusqu'à présent, c'est que depuis datefields comprennent souvent des composants, la meilleure façon de faire de la plage de dates des requêtes est avec "où yourfield >= date de début et yourfield < le jour après la date de fin". Avis de la deuxième opérateur de comparaison est moins, pas moins de ou égal à.
OriginalL'auteur deanmau5 | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de convertir la date en DATETIME et dire sybase ce que le format est pour être sûr.
Selon cette documentation le code pour JJ/MM/AAAA est de 101, donc quelque chose comme ceci:
Vous pouvez voir la différence en exécutant les commandes suivantes:
Merci, cela a bien fonctionné. M'a permis de tester corriger les enregistrements ont été tiré vers l'arrière par MyBatis
Content d'avoir pu aider 🙂
OriginalL'auteur twoleggedhorse
permettra de convertir du texte le format de date....
Je suis en supposant que vos deux champs (afterDate et beforeDate) sont dans le format de Date.
Votre exemple serait:
Aussi, généralement (mais pas toujours) une plage de date se trouve sur le MÊME terrain. Comme je l'ai dit, ce n'est pas vrai tout le temps, et vous pourriez avoir une bonne raison pour cela.
OriginalL'auteur Jim
Pour la date-champ temps de sybase, au lieu de passer par la fonction de conversion, il y a une approche plus directe.
La date doit être dans la forme 'YYYY-MM-DD'
Si vous souhaitez ajouter un temps, il peut être inclus, ainsi que la date. La date et l'heure doivent être séparés par un T.
Aucun date heure terrain peut être utilisé directement en utilisant le format 'YYYY-MM-DDTHH:MM:SS'
En utilisant les fonctions sont trop longues. Personne n'a besoin d'un bazooka pour tirer un écureuil! 🙂
OriginalL'auteur Gaurav Swaroop
La meilleure approche est d'utiliser la norme ANSI qui ne nécessite pas de conversion: aaaammjj (vous pouvez également inclure hh:mm:ss), par exemple:
DateField1 >= "20150101" et DateFile1 <= "20150102"
OriginalL'auteur David
Vous devez décider qui de Saisie de Chaînes de caractères que l'utilisateur va utiliser comme paramètre, puis de les convertir et de les enchaîner comme vous voulez, sauf s'il est de type Datetime il n'est pas important le format initial il avait, vous pouvez l'utiliser dans un entre-condition.
E. g. l'utilisateur est de l'Europe, et utilise des "JJ.MM.YY" et "hh:mm" comme paramètre d'entrée, je voudrais convertir et de les enchaîner comme ceci:
OriginalL'auteur Clevemayer