SQL Server 2005および2008を使用したSQLクエリを使用して、DateTime列からTimeのみを取得したい。デフォルトの出力:
AttDate
==
2011-02-09 13:09:00
2011-02-09 14:10:00
私はこの出力が欲しいのですが:
AttDate Time
==
2011-02-09 13:09:00 13:09
2011-02-09 14:10:00 14:10
SQL Server 2008
select cast(AttDate as time) [time]
from yourtable
以前のバージョン
select convert(char(5), AttDate, 108) [time]
from yourtable
Sqlサーバを想定
SELECT CONVERT(VARCHAR(8),GETDATE(),108)
SQL Server 2008+には "time"データ型があります
SELECT
..., CAST(MyDateTimeCol AS time)
FROM
...
古いバージョンの場合、 なし varchar変換
SELECT
..., DATEADD(dd, DATEDIFF(dd, MyDateTimeCol, 0), MyDateTimeCol)
FROM
...
ミリ秒スタックなしでdatetimeから時刻を取得する最も簡単な方法は、次のとおりです。
SELECT convert(time(0),getDate())
これを使ってみる
日付から時刻
select cast(getdate() as time(0))
TinyTimeまでの時間
select cast(orig_time as time(0))
これを試して:
select convert(nvarchar,CAST(getdate()as time),100)
select AttDate,convert(char(5), AttDate, 108) [Time] from yourTableName
私はよくDateTimeからTimeを取得するためにこのスクリプトを使います。
SELECT CONVERT(VARCHAR(9),RIGHT(YOURCOLUMN_DATETIME,9),108) FROM YOURTABLE
日時から時刻を取得するには、
SELECT CONVERT(VARCHAR(20), GETDATE(), 114)
select cast (as time(0))
良い句になります。例えば:
(select cast(start_date as time(0))) AS 'START TIME'
このスタイルの何かをデートしたい場合は、2013年10月23日10:30です。
これを使って
SELECT CONVERT(NVARCHAR(30),getdate(), 100)
convert()
メソッドは3つのパラメータを取ります
サーバーの日付を取得
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7)) FROM TABLENAME WHERE ...
または
テーブルに格納されている場合
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), datename, 100), 7)) FROM TABLENAME WHERE ...
結果:
11:41 AM