2013-01-24 3 views
0

J'essaie de filtrer mes résultats SQL pour une date sur une année spécifique.SQL Rechercher la date de sous-chaîne

Les dates sont stockées dans une seule colonne DATE dans le format mois/jour/année

je dois saisir que le résultat pour certaines années.

String sql = SELECT DATE FROM TABLENAME 
WHERE **LAST TWO DATE DIGITS** = ? ORDER BY DATE DESC; 

ps.setString(1, yearDesired); 

Est-ce possible? J'ai regardé autour et n'ai pas trouvé un problème directement lié à ceci.

Nous vous remercions de votre aide.

+0

qui base de données SQL utilisez-vous – Saju

+0

Quel est le type de DATE? Je suppose que c'est datetime, mais puisque vous mentionnez qu'il est stocké dans l'ordre M/D/Y, et vous mentionnez la sous-chaîne dans le titre de la question, c'est peut-être un char ou varchar. –

Répondre

1

Plusieurs bases de données prennent en charge la fonction YEAR():

WHERE YEAR(dtColumn) between 2003 and 2005 

Pour une réponse plus précise, poster la base de données que vous utilisez.

+0

Désolé pour le manque d'informations, mais cela fonctionne très bien pour ma situation. Merci beaucoup pour l'aide! – sudoJustin

0

La plupart des implémentations SQL ont des fonctions de date, par ex. YEAR (DATE) renvoie l'année à 4 chiffres.

SQL Date Functions

0

Cela devrait fonctionner pour SQL Server:

SELECT * FROM TableName where DatePart(YY, myDateColumn) = 2013