2012-08-03 13 views
8

Voglio scrivere selezionare per trovare la data dal database. Nel database ho il campo actiondate come tipo di data con date come questa 7/12/2012 17:21:33. Come scrivere selezionare per ottenere tutti i dati dalla data del 7/12/2012?sql date select

so if I have db like this: 
1 7/12/2012 17:21:33 
2 7/12/2012 15:21:35 
3 8/12/2012 8:25:35 
4 9/12/2014 8:25:35 

I want get only these rows: 
1 7/12/2012 17:21:33 
2 7/12/2012 15:21:35 
+2

quale software di database stai usando – Dave

risposta

7
select * from 
yourtable where yourDateColumn < '2012-12-8' and yourDateColumn >= '2012-12-07' 
+2

forse "yourDateColumn> = '2012-12-07'" è meglio se vuoi prendere mezzanotte anche – pater

+0

grazie! modificato –

1

È possibile utilizzare BETWEEN per confrontare le date:

select * 
from yourTable 
where yourDate between '2012-07-12' and '2012-08-12' 

Oppure, se siete alla ricerca di una data, in particolare, è possibile utilizzare. È possibile modificare il '2012-07-12' a un parametro che potrebbe essere passato in modo si potrebbe ottenere una data:

select * 
from yourTable 
where Cast(datediff(day, 0, yourDate) as datetime) = '2012-07-12' 
+0

La domanda è di circa un giorno; stai fornendo dati per un mese e un giorno. –

+0

@JonathanLeffler modificato, per includere se vogliono solo un giorno di restituzione. – Taryn

2

Penso che il Giulio sta chiedendo come ottenere solo le righe con 7/12/2012 17:21:33

Quindi può offrirvi una soluzione che ha dimostrato di essere di destra:

1) Date un'occhiata a funzione Convert T-SQL a T-SQL Convert function

2) quando si sarà guarda che prendi nota dei codici di conversione

Convert codes

Fonte immagine: http://technet.microsoft.com/en-us/library/ms187928.aspx

E ora, quando ho infastidito tutti con la teoria qui è il codice:

per l'Europa

select * from table_name 
where convert(varchar, column_that_has_date_in, 104) = '12.07.2012' 

Per gli Stati Uniti

select * from table_name 
where convert(varchar, column_that_has_date_in, 101) = '07/12/2012' 

E un altro aspetto degno di nota è il motivo per cui quando si digita in SQL otteniamo 0 righe:

select * from table_name 
where column_that_has_date_in like '%07/12/2012%' 

Questo perché la query è alla ricerca solo per le date con nessuna parte MOMENTO.