PDA

View Full Version : [SQL] Problema select sulle DATE


@GuyBrush@
19-01-2004, 15:41
Salve gente! :D

Ho questo problemone con SQL (mssql).

Se in sql faccio un

... datepart(mm,data) ...


Se il mese è <10 me lo scrive con 1 cifra sola.

Pertanto :

GENNAIO = 1 (dovrebbe essere 01)
NOVEMBRE = [11]

Come faccio x far scrivere i mesi prima di ottobre con lo ZERO davanti??

La data è scritta correttamente (es. 12/01/2004) , ma quando fa il datepart fa questa robaccia.... :muro:

matpez
19-01-2004, 15:45
Prova a mettere Format(data,"00,00,0000")

@GuyBrush@
19-01-2004, 15:47
se lo faccio in sql così


SELECT Format(created_on, [00,00,0000]) AS Expr1
FROM accounts


Dice che non riconosce format come funzione :(

matpez
19-01-2004, 15:54
Che SQL usi..quelle di access?

Cmq il formato va messo sotto "00/00/0000" non [00,00,0000]

@GuyBrush@
19-01-2004, 16:02
Sql server 2000 ...

matpez
19-01-2004, 16:07
Allora nn c'è Format ;)

cisky
20-01-2004, 12:41
Io uso questo "trucchetto".

Utilizzo la funzione CONVERT per farmi restituire una data formattata 'mm.dd.yyyy' e poi recupero i primi 2 caratteri verso sinistra della data e ciòè 'mm'

Es: se vuoi una formattazione 'mm' per una data basa scrivere:

SELECT LEFT(CONVERT(varchar, DATA, 1), 2) FROM TABELLA

- Ho cercato un alto modo ma la funzione convert non formatta secondo 'mm' e la DATEPART restituisce dei valori numerici.

;)

@GuyBrush@
20-01-2004, 17:34
ci speravo anche io... ma se faccio convert(varchar,datepart(mm,data)) mi restituisce le prime 2 lettere del mese (es. JA) anzikè il numero :( :( :(

cisky
20-01-2004, 18:51
Non ho capito cosa vuoi dire.

Se utilizzi la sintassi LEFT(CONVERT(varchar, DATA, 1), 2) ottieni già devi valori numerici dei mesi!!!!

Esempio :

Data = 20/01/2004 [dd/mm/yyyy]

CONVERT(varchar, Data, 1) = 01.20.2004

LEFT(CONVERT(varchar, DATA, 1), 2) = 01 ... ed infatti 01 corrisponde a Gennaio.

Max 555
20-01-2004, 21:14
prova anche a controllare le impostazioni internazionali del server, dovresti poter settare da li anceh qualcosa.

prova anche a fare la query da una vista e vedere come formatta lui la data...

p.s. io ormai le date si sql server non le utilizzo piu, sono sempre un casino .. meglio 1AAMMGG :P