Chcę uzyskać tylko godzinę z kolumny DateTime przy użyciu zapytania SQL przy użyciu SQL Server 2005 i 2008 Domyślne dane wyjściowe:
AttDate
==
2011-02-09 13:09:00
2011-02-09 14:10:00
Chciałbym ten wynik:
AttDate Time
==
2011-02-09 13:09:00 13:09
2011-02-09 14:10:00 14:10
SELECT CONVERT(VARCHAR(8),GETDATE(),108)
dla serwera SQLOdpowiedzi:
SQL Server 2008:
Wcześniejsze wersje:
źródło
Zakładając serwer Sql
SELECT CONVERT(VARCHAR(8),GETDATE(),108)
źródło
SQL Server 2008+ ma typ danych „czasowy”
W przypadku starszych wersji bez konwersji varchar
źródło
0
oznacza datę minimalną1900-01-01
. W ten sposób otrzymujemy (ujemną) liczbę dni między wartością kolumny a 0, a następnie dodajemy te ujemne dni do wartości kolumny, która „zeruje” część daty1900-01-01
i pozostaje ci tylko czas.Najprostszym sposobem na uzyskanie czasu z datetime bez stosu milisekund jest:
źródło
Spróbuj użyć tego
Data do godziny
Czas na TinyTime
źródło
Spróbuj tego:
źródło
Spróbuj, to zadziała:
W celach informacyjnych .
źródło
select AttDate,convert(char(5), AttDate, 108) [Time] from yourTableName
źródło
byłoby dobrą klauzulą. Na przykład:
źródło
Często używam tego skryptu, aby uzyskać czas z DateTime:
źródło
Aby uzyskać czas z datetime, możemy użyć
źródło
Jeśli chcesz umówić się na randkę w tym stylu: 23 października 2013 10:30
Użyj tego
convert()
metoda przyjmuje 3 parametryźródło
Uzyskaj datę serwera
lub
Jeśli jest przechowywany w tabeli
Wynik:
źródło
źródło
na MSSQL2012 lub nowszym
...lub...
źródło
SQL Server 2012:
Osobiście wolę TRY_CONVERT () niż CONVERT (). Główna różnica: jeśli rzutowanie nie powiedzie się, TRY_CONVERT () zwraca NULL, podczas gdy CONVERT () zgłasza błąd.
źródło
select substr(to_char(colUmn_name, 'DD/MM/RRRR HH:MM:SS'),11,19) from table_name;
Wyjście: z
źródło
'to_char' is not a recognized built-in function name.