Καλησπέρα,
Με αφορμή ερώτηση ενός φίλου, που ήθελε, να απομονώσει το χρόνο(time) και την ημερομηνία(date) από ένα πεδίο(datetime) σε ένα πίνακα μιας βάσης στον sql server, μπορούμε να πούμε τα εξής.
O Sql Server δεν έχει data type που να μπορούμε να αποθηκεύσουμε μόνο date(12/12/2004), ή μόνο χρόνο(23:17:48).έχει datetime,smalldatetime data types.
κάποια παραδείγματα ακολουθούν.
ανοίγετε ένα query editor-query analyzer, γράψτε το παρακάτω sql statement και πατήστε F5
SELECT DATEADD(day,
DATEDIFF(day, '20070501', getdate()),
'20070501')
result
2007-10-30 00:00:00.000
********************
Βρίσκουμε την διαφορά μεταξύ μιας ημερομηνίας(όποια και αν είναι αυτή),
DATEDIFF(day, '20070501', getdate())
και της σημερινής και μετά προσθέτουμε τις ημέρες αυτές πάλι στην ίδια ημερομηνία.
για να πάρουμε μόνο την ημερομηνία
SELECT Convert(CHAR(10), getdate(), 101)
result
10/30/2007
********************
για να πάρουμε μόνο την ώρα
SELECT substring(Convert(CHAR(19), getdate(), 120 ),12,8)
result
23:43:57
********************
για να πάρουμε μόνο την ώρα, χωρίς δευτερόλεπτα
SELECT substring(Convert(CHAR(19), getdate(), 120 ),12,5)
result
23:45
source for these tips:
http://www.thescripts.com/forum/thread142592.html
http://www.karaszi.com/SQLServer/info_datetime.asp
Νικόλαος Καντζέλης
BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT