12

SQL Server 2005 を実行しています。技術的には、tsql 日時から時間を取得する方法を知っています。

CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond

問題は、日時フィールドがあり、本質的に時間部分を取得して整数に変換する必要があることです。具体的には秒です。次に、この整数に対して一連の算術演算を行う必要がありますが、ここでは説明しません。stackoverflow で検索しましたが、この質問に固有の質問は見つかりませんでした。何か案は?私はここでベストプラクティスを本当に探しています.クエリオプティマイザを完全に窓の外に投げ出すので、この特定の目的のためにudfを作成することを心配しています.

このウェブページを見たことがあるので、貼り付けないでください。:

http://forums.devx.com/showthread.php?171561-TSQL-Converting-HH-MM-SS-to-seconds

4

3 に答える 3

18

使用DATEPART:

(DATEPART(HOUR, GETDATE()) * 3600) +
(DATEPART(MINUTE, GETDATE()) * 60) +
(DATEPART(SECOND, GETDATE()))
于 2012-09-13T22:36:44.253 に答える
16

Just my 2 cents ...これを行う別の方法

編集: SQL Server 2005 のメソッドを追加 (ありがとう、マイケル)

SQL Server 2008 の場合

SELECT DATEDIFF(SECOND, CONVERT(date, GETDATE()), GETDATE())

SQL Server 2005 以降の場合

SELECT DATEDIFF(SECOND, DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())), GETDATE())
于 2012-09-13T23:20:37.137 に答える
0

必要な関数は DatePart です

Declare @d DateTime
Select @d = GetDate()
Select (DatePart(HOUR, @d) * 3600) + (DatePart(MINUTE, @d) * 60) + DatePart(SECOND, @d)
于 2012-09-13T22:39:20.560 に答える