SQL Serverで時刻のみを表示するようにselectステートメントのdatetime値をフォーマットする方法を知っている人はいますか?
例:
Table cuatomer
id name datetime
1 Alvin 2010-10-15 15:12:54:00
2 Ken 2010-10-08 09:23:56:00
テーブルを選択すると、次のように結果が表示されます
id name time
1 Alvin 3:12PM
2 Ken 9:23AM
Mssqlでそれを行う方法はありますか?
CONVERT、RIGHT、TRIMを組み合わせて使用して、目的の結果を得ることができます。
_SELECT ltrim(right(convert(varchar(25), getdate(), 100), 7))
_
関数に表示される_100
_は日付形式mon dd yyyy hh:miAM (or PM)
を指定し、そこから正しい文字を取得します。
日時の変換についての詳細 ここ を参照してください。
次のようにCONVERT関数を使用できます。
SELECT CONVERT(varchar, your_datetime, 108)
ただし、これは24時間制で、AM/PMはありません。
これは、日時値から時間を取得し、午前または午後のアドオンも提供します
SELECT RIGHT('0'+LTRIM(RIGHT(CONVERT(varchar,getDate(),100),8)),7)
日付は常にHH:mmAM形式で返されます。
スペースの不足に注意してください
または
SELECT REPLACE(REPLACE(RIGHT('0'+LTRIM(RIGHT(CONVERT(varchar,getDate(),100),7)),7),'AM',' AM'),'PM',' PM')
日付は常にHH:mm AM形式で返されます。
お役に立てば幸いです。
[〜#〜] pk [〜#〜]
試してください:
select convert(varchar, getdate(), 108)
+ ' ' + RIGHT(convert(varchar, getdate(), 100), 2) as Time
あなたは使うことができるかもしれません:
select
convert(varchar,getdate(),114)
次のようなクエリを手動で作成できる場合があります。
string query = string.Format("INSERT INTO test (DateOnlyField, TimeOnlyField) VALUES ('{0}', '1899-12-30 {1}')", DateTime.Today.ToShortDateString(), TimeString)
これがうまくいくかどうか私は知りません:
Create Table Schedule( ScheduleID Integer Identity, ScheduledTime DateTime )
Go
Insert Into Schedule( ScheduledTime ) Values( '10:15:00 AM' )
Go
Select ScheduledTime As DBScheduledTime, Convert( VarChar( 10 ), ScheduledTime, 114 ) As ScheduledTime
From Schedule
Go
Drop Table Schedule
Go
SQL Server 2008以降を使用している場合次のステートメントを使用できます。
SELECT Convert( VarChar( 10 ), CAST([columnName] AS TIME(0)), 100 )