tipo DATE in mysql

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
tgmx
Linux 4.x
Linux 4.x
Messaggi: 1336
Iscritto il: ven 28 apr 2006, 14:40
Slackware: 14.1
Desktop: KDE 4
Località: Ancona

tipo DATE in mysql

Messaggio da tgmx »

Ciao Ragazzi,

sto configurando un database MYSQL ed in una tabella c'è una colonna con tipo di dato "DATE" (per visualizzare le date nel formato 2006-5-28 ) .
Il problema è accedere al mese di ogni data senza implementare niente in c++, solamente tramite un select del tipo:

Codice: Seleziona tutto

select * from tabella where data.mese = 2
cioè voglio selezionare tutte le righe in cui il campo della data fa riferimento a febbraio.
Ovviamente il select che ho scritto non funziona altrimenti non avrei aperto questo topic !!! :D

Grazie!!!

Avatar utente
bbg5ne
Linux 2.x
Linux 2.x
Messaggi: 278
Iscritto il: mer 10 mag 2006, 22:56

Messaggio da bbg5ne »

io di solito uso un campo int nel quale salvo il timestamp che creo con php....
però forse nel tuo caso potrebbe essere + comodo creare un campo per i giorni, uno per i mesi e uno per gli anni anche se, mi sa che non puoi modificare la struttura, in questo caso dovresti utilizzare una funzione che tokenizza la data!!!
in pratica è una funziona che fa il parsing del campo e quando trova un - ti restituisce tutto quello che ci sta prima o dopo, fino al separatore successivo, in base a come la sviluppi!!!
se non sono stato abbastanza chiaro fammi sapere...
;)

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

provato già con MONTH(data) ='2' ?

Avatar utente
IceSlack
Linux 4.x
Linux 4.x
Messaggi: 1313
Iscritto il: dom 30 ott 2005, 13:27

Re: tipo DATE in mysql

Messaggio da IceSlack »

tgmx ha scritto:Ciao Ragazzi,

sto configurando un database MYSQL ed in una tabella c'è una colonna con tipo di dato "DATE" (per visualizzare le date nel formato 2006-5-28 ) .
Il problema è accedere al mese di ogni data senza implementare niente in c++, solamente tramite un select del tipo:

Codice: Seleziona tutto

select * from tabella where data.mese = 2
cioè voglio selezionare tutte le righe in cui il campo della data fa riferimento a febbraio.
Ovviamente il select che ho scritto non funziona altrimenti non avrei aperto questo topic !!! :D

Grazie!!!
prova

Codice: Seleziona tutto

select * from tabella where data >= '2006-2-01' AND data <= '2006-2-30';

Avatar utente
gnubit
Linux 3.x
Linux 3.x
Messaggi: 751
Iscritto il: lun 17 apr 2006, 0:16
Località: Verona
Contatta:

Messaggio da gnubit »

credo che funzioni anche
SELECT * FROM tabella WHERE date LIKE '____-02-__'

oppure
SELECT * FROM tabella WHERE SUBSTRING(data,6,2) = '02'

Mi pare che la data sia paddata comunque a 10 caratteri AAAA-MM-GG.
Se così è entrambe dovrebbero funzionare.

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

si, insomma ci sono tanti modi, comunque come già detto la soluzione più comoda è proprio MONTH(data)=2
Per le altre info puoi sempre vedere sulla documentazione :P http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html

Avatar utente
tgmx
Linux 4.x
Linux 4.x
Messaggi: 1336
Iscritto il: ven 28 apr 2006, 14:40
Slackware: 14.1
Desktop: KDE 4
Località: Ancona

Messaggio da tgmx »

Grazie Ragazzi !!!

mi avete dato delle ottime soluzioni.

Forse userò quella di DAPUZZ:

Codice: Seleziona tutto

MONTH(data) ='2'
comunque le ho provate tutte e funzionano perfettamente anzi nelle altre ho trovato soluzioni ad altri piccoli problemi che si erano presentati sullo stesso database :)

Rispondi