J'ai une colonne de date où la date est affichée au format 2009-11-18 10:55:28.370
. Je veux juste obtenir la date (pas le temps) de cette valeur. Comment je fais ça?Obtention de la 'date' d'un champ DateTime dans SQL Server
Répondre
Si vous utilisez SQL Server 2008, il y a maintenant une date datatype. Fait beaucoup plus naturel!
SELECT CONVERT(Date, GETDATE())
ici:
SELECT creation_date
FROM risks
WHERE creation_date = GETDATE()
Ceci renverra toutes les valeurs creation_date
stockées dans la table risks
qui sont exactement les mêmes que ce qui est retourné par la fonction GETDATE()
. Je suppose que le type de données de creation_date
est Date
.
Vous avez juste besoin d'inclure creation_date dans votre clause select comme ceci:
select id, creation_date from risks where creation_date = getdate()
l'a essayé ne fonctionne pas .... doit convertir quelque part sélectionnez creation_date de WEB_RISK_RISK où CREATION_DATE = GETDATE(). p.s. il y a un disque qui a été enregistré aujourd'hui. – thegunner
Si j'ai bien compris votre question,
select convert(varchar, creation_date , 103) as creation_date from tablename
Regardez CAST and CONVERT
il est appelé "flooring a datetime", faites comme ça pour enlever juste le temps (c'est la méthode la plus rapide, plus rapide que d'utiliser C Onvert() ou CAST() mise en forme piquent):
DECLARE @datetime datetime;
SET @datetime = '2008-09-17 12:56:53.430';
SELECT DATEADD(day,DATEDIFF(day,0,@datetime),0)
SORTIE:
-----------------------
2008-09-17 00:00:00.000
(1 row(s) affected)
voici comment faire pour d'autres parties d'un datetime:
--Floor a datetime
DECLARE @datetime datetime;
SET @datetime = '2008-09-17 12:56:53.430';
SELECT '0 None', @datetime -- none 2008-09-17 12:56:53.430
UNION SELECT '1 Second',DATEADD(second,DATEDIFF(second,'2000-01-01',@datetime),'2000-01-01') -- Second: 2008-09-17 12:56:53.000
UNION SELECT '2 Minute',DATEADD(minute,DATEDIFF(minute,0,@datetime),0) -- Minute: 2008-09-17 12:56:00.000
UNION SELECT '3 Hour', DATEADD(hour,DATEDIFF(hour,0,@datetime),0) -- Hour: 2008-09-17 12:00:00.000
UNION SELECT '4 Day', DATEADD(day,DATEDIFF(day,0,@datetime),0) -- Day: 2008-09-17 00:00:00.000
UNION SELECT '5 Month', DATEADD(month,DATEDIFF(month,0,@datetime),0) -- Month: 2008-09-01 00:00:00.000
UNION SELECT '6 Year', DATEADD(year,DATEDIFF(year,0,@datetime),0) -- Year: 2008-01-01 00:00:00.000
ORDER BY 1
PRINT' '
PRINT 'Note that when you are flooring by the second, you will often get an arithmetic overflow if you use 0. So pick a known value that is guaranteed to be lower than the datetime you are attempting to floor'
PRINT 'this always uses a date less than the given date, so there will be no arithmetic overflow'
SELECT '1 Second',DATEADD(second,DATEDIFF(second,DATEADD(day,DATEDIFF(day,0,@datetime),0)-1,@datetime),DATEADD(day,DATEDIFF(day,0,@datetime),0)-1) -- Second: 2008-09-17 12:56:53.000
SORTIE:
-------- -----------------------
0 None 2008-09-17 12:56:53.430
1 Second 2008-09-17 12:56:53.000
2 Minute 2008-09-17 12:56:00.000
3 Hour 2008-09-17 12:00:00.000
4 Day 2008-09-17 00:00:00.000
5 Month 2008-09-01 00:00:00.000
6 Year 2008-01-01 00:00:00.000
(7 row(s) affected)
Note that when you are flooring by the second, you will often get an arithmetic overflow if you use 0. So pick a known value that is guaranteed to be lower than the datetime you are attempting to floor
this always uses a date less than the given date, so there will be no arithmetic overflow
-------- -----------------------
1 Second 2008-09-17 12:56:53.000
(1 row(s) affected)
Vous pouvez toujours utiliser le mois/jour/année fonctions de le retourner:
declare @date datetime
set @date = '1/1/10 12:00 PM'
select cast(month(@date) as varchar) + '/' + cast(day(@date) as varchar) + '/' + cast(year(@date) as varchar) as theDate
- 1. Sélection par champ datetime dans SQL Server
- 2. Convert champ datetime dans SQL Server 2005
- 3. Sélection entre deux dates dans un champ DateTime - SQL Server
- 4. Comparer une chaîne de date à datetime dans SQL Server?
- 5. SQL Server convertir la chaîne en datetime
- 6. Sql Server datetime conversion
- 7. Champs SQL Server et DateTime
- 8. SQL Server varchar datetime
- 9. Sql Server DATETIME format incorrrect
- 10. Obtention de la date de création d'une entrée dans la table SQL Server
- 11. Obtention de DB DateTime dans l'application
- 12. manipulation DateTime dans SQL Server EXECUTE sp_executesql
- 13. Arrondi indésirable de DateTime dans SQL Server
- 14. Insertion de DateTime dans Sql Server 2005
- 15. La meilleure façon d'extraire la date du champ SQL Datetime dans C# .Net?
- 16. Quelle est la bonne façon de formater un datetime dans le champ datetime du serveur SQL
- 17. T-SQL: Comment mettre à jour la partie date du champ datetime?
- 18. Stockage de la date Uniquement dans SQL Server 2005
- 19. Comment obtenir la date de datetime en sql
- 20. Valider la chaîne DateTime dans SQL Server 2005
- 21. Optimiser la requête SQL jointe le DATE (datetime) = date?
- 22. Informix SQL: comment obtenir la partie date d'un champ datetime dans une requête?
- 23. Vérifier l'intervalle de date avec SQL Server
- 24. django ordre par date dans date/date d'extraction de datetime
- 25. Comment définir la valeur null par défaut dans un champ de date dans sql server 2000?
- 26. Comment incrémenter le champ DateTime dans SQL Server 2005 d'un mois?
- 27. SQL Server 2005 Date Localisation
- 28. Pour obtenir la date à partir datetime en SQL
- 29. Les champs Date et heure se combinent à DateTime dans SQL Server 2000?
- 30. Obtenez seulement la partie Date de DateTime dans MSSQL
ok réponse est: sélectionnez creation_date de WEB_RISK_RISK où CREATION_DATE = convertir (date, GETDATE()) - merci pour le conseil. – thegunner