2016-04-21 2 views
1

Ich möchte monatliche_dates in viertel umwandeln, aber ich würde gerne einstelle Zahlen mit 0s. Dh, monthly_date = '2015.01.01' In der SQL-Abfrage, die ich tun: QUARTER (monthly_date) * 3-2 AS varchar aber das gibt mir '1' anstelle von '01'SQL konvertieren viertel datum zahl in zeichenfolge padding 0s als präfix für zahlen <10

Ist Gibt es einen Weg, um mir "01", "04", "07" und "10" zu geben?

+1

Ja, aber das hängt von der SQL-Engine verwenden Sie –

+0

Mögliche Duplikat [Effizienteste T-SQL Weg, um eine varchar auf der linken Seite auf eine bestimmte Länge zu Pad?] (Http : //stackoverflow.com/questions/121864/most-efficient-t-sql-way-to-pad-a-varchar-on-the-left-to-a-certain-length) – Siyual

+0

@juergend danke. Ich benutze https://my.vertica.com/docs/7.0.x/PDF/HP_Vertica_7.0.x_SQL_Reference_Manual.pdf – Dnaiel

Antwort

-1

Ich gebe zu, das ist eine Brute-Force-Methode, aber ich habe es in der Vergangenheit verwendet. In Anbetracht dieser vier Variablen, kann ich die StartCalendarId mit gepolstertem 0'en berechnen

Declare @StartDate date 
Declare @StartYear int 
Declare @StartMonth int 
Declare @StartDay int 

Set @StartYear = Year(@StartDate) 
Set @StartMonth = Month(@StartDate) 
Set @StartDay = Day(@StartDate) 

Set @StartCalendarId = 
(CONVERT([int], 
    (((CONVERT([varchar](4),@StartYear)+ 
    case when len(@StartMonth)=(1) then '0' else '' end)+ 
    CONVERT([varchar](2),@StartMonth))+ 
    case when len(@StartDay)=(1) then '0' else '' end) 
    +CONVERT([varchar](2),@StartDay)) 
) 
+0

Dies ist nicht SQL Server – Kermit

+0

Eigentlich ist es genaue Code in einer meiner gespeicherten SQL-Prozeduren. Die Idee ist, dass Sie bei einem Datum das Datum mit aufgefüllten Nullen in ganzzahliger Form ausdrücken können. –

+0

Das ist großartig, aber es funktioniert nicht mit Vertica; Welches ist die in der Frage markierte Datenbank? – Kermit

0

Können Sie Quartal Zahl größer als 4 haben?

Wie auch immer ... Sie können Zahlen so formatieren, wie Sie möchten (überprüfen Sie SQL-Referenzhandbuch> SQL-Funktionen> Formatierungsfunktionen).

Zum Beispiel:

SQL> select to_char(4 , '09') ; 
to_char 
--------- 
    04 
SQL> select to_char(12 , '09') ; 
to_char 
--------- 
    12 
Verwandte Themen