2017-02-03 5 views
0

Ich habe einen Wert "27:30" als Varchar. Ich möchte diesen Wert rechtzeitig umsetzen. wie .... CAST ('27: 30 'AS Zeit) oder CONVERT ('27: 30', Zeit).So validieren Sie Zeit in SQL Server?

Aber es gibt Fehler.

Wie kann ich es konvertieren?

+1

was Zeit ist soll sein? – Lamak

+1

Es bedeutet 27 Stunden und 30 Minuten. – MohammedAshrafali

+3

ja, aber ** wie spät ist es **, weißt du, in 24 Stunden Tag, willst du es 03: 30? – Lamak

Antwort

1

Eigentlich will ich „DATEDIFF tun (MINUTE, '00: 00: 00 ', CAST ('27: 30' AS TIME)) ". Irgendein Vorschlag? MM String Minuten, die, was die oben (ungültig) Ausdruck ist versucht zu tun:

Um Ihre HH zu konvertieren `27:30

SELECT 
    f, 
    CAST(SUBSTRING(f, 1, CHARINDEX(':', f, 1) - 1) AS INT) * 60 + SUBSTRING(f, CHARINDEX(':', f, 1) + 1, 2) 
FROM 
    (VALUES ('00:00'),('15:10'),('27:30'),('3:00'),('1:1')) T(f) 

Für

00:00 0 
15:10 910 
27:30 1650 
3:00 180 
1:1  61 
-3

Ist Ihre Zielspalte Datetime? Wenn dies der Fall brauchen Sie nicht zu konvertieren, sondern einfach werfen, alternativ so etwas zu verwenden, wie

wählen cast (column als Datetime (0)) als Datum- und aus Ihrer Tabelle

+0

'cast' und' convert' sind im Wesentlichen die gleiche Operation. Außerdem können Sie nicht 27:30 in datetime umwandeln/konvertieren, da datetime einen maximalen Wert von 23 für den Stundenanteil hat. – Pred