効率的なSQL Server機能(私の場合は2005年)を使用して、UNIX時刻の値をローカル時刻を使用してSQL Serverの日時に変換します(特にサマータイム調整 - すなわち、わずか数秒で1970年1月1日を追加していない)Unixの時刻をローカルの日時に変換するSQL Serverの機能
3
A
答えて
2
SELECT DATEADD(second, @ts, {d '1970-01-01'}) as MSSQLdatetime
日付を持っていたら、今戻った日付のDSTの状態に応じて、日にDATEADD行うことができます。
CREATE function [dbo].[fn_GetDaylightSavingsTimeStart]
(@Year varchar(4))
RETURNS smalldatetime
as
begin
declare @DTSStartWeek smalldatetime, @DTSEndWeek smalldatetime
set @DTSStartWeek = '03/01/' + convert(varchar,@Year)
return case datepart(dw,@DTSStartWeek)
when 1 then
dateadd(hour,170,@DTSStartWeek)
when 2 then
dateadd(hour,314,@DTSStartWeek)
when 3 then
dateadd(hour,290,@DTSStartWeek)
when 4 then
dateadd(hour,266,@DTSStartWeek)
when 5 then
dateadd(hour,242,@DTSStartWeek)
when 6 then
dateadd(hour,218,@DTSStartWeek)
when 7 then
dateadd(hour,194,@DTSStartWeek)
end
end
あなたはDSTが終了したときに見つけることがまね機能を必要とするが、詳細は、このサイトを見てみましょう: http://www.mssqltips.com/tip.asp?tip=1372
1
より良いDSTをチェックするには、いくつかの機能、サンプルの形式を必要ですか?
CREATE FUNCTION [dbo].[UnixTimestampToGMTDatetime]
(@UnixTimestamp bigint)
RETURNS datetime
AS
BEGIN
DECLARE @GMTDatetime datetime
select @GMTDatetime =
CASE
WHEN dateadd(ss, @UnixTimestamp/1000, '1970-01-01')
BETWEEN
Convert(DATETIME, Convert(VARCHAR(4), Year(dateadd(ss, @UnixTimestamp/1000, '1970-01-01'))) + '-03-' + Convert(VARCHAR(2), (31 - (5 * Year(dateadd(ss, @UnixTimestamp/1000, '1970-01-01'))/4 + 4) % 7)) + ' 01:00:00', 20)
AND
Convert(DATETIME, Convert(VARCHAR(4), Year(dateadd(ss, @UnixTimestamp/1000, '1970-01-01'))) + '-10-' + Convert(VARCHAR(2), (31 - (5 * Year(dateadd(ss, @UnixTimestamp/1000, '1970-01-01'))/4 + 1) % 7)) + ' 02:00:00', 20)
THEN Dateadd(hh, 1, dateadd(ss, @UnixTimestamp/1000, '1970-01-01'))
ELSE Dateadd(hh, 0, dateadd(ss, @UnixTimestamp/1000, '1970-01-01'))
END
RETURN @GMTDatetime
END
関連する問題
- 1. SQL Serverの日付時刻の変換
- 2. 時刻を日に変換する:SQL Serverの時形式
- 3. 日時をUNIX時刻に変換する
- 4. SQL Serverの日付時刻変数
- 5. SQL Serverの時刻を24時間に変換する
- 6. SQL ServerでVarcharを時刻に変換
- 7. SQL Server:UTCとローカル時刻を正確に変換する
- 8. UTC時刻文字列をUnix時刻に変換する
- 9. SQL Serverの日付時刻変換エラーasp.net
- 10. Logstashで日付をUNIX時刻に変換する
- 11. 集計関数を使用する場合、SQL Server 2014でUTC時刻をローカル時刻に変換する
- 12. ブラウザの時刻に合わせてUnixの時刻を変換する方法
- 13. と条件日付時刻のSQL Server
- 14. Informatica日付/時刻変換
- 15. インドの標準時刻をSQLの日時に変換する方法
- 16. 日付と時刻の列を.csvのunixタイムスタンプに変換する
- 17. PHP preg_match内の日付/時刻を抽出してUnix時刻に変換する
- 18. 日付と日付をSQLの日付と時刻に変換する
- 19. 日付時刻をDateTimeKindで変換するutcからローカル
- 20. ISO8601の時刻をUNIXのタイムスタンプに変換するコマンドライン
- 21. SQL Server:Nullの日付時刻を変換する
- 22. MySQLの日付/時刻文字列をunixタイムスタンプに変換する
- 23. 共有時刻の日付時刻リストフィールドの表示と変換
- 24. SQL Server時刻を整数に変換する
- 25. SQL Server - 番号を時刻に変換する
- 26. Sitecoreのnvarcharの日付表現をSQLの日付時刻に変換する
- 27. 日付時刻varchar変換
- 28. 日付時刻変換
- 29. 変換スタンプ/日付時刻
- 30. SASの日付と時刻の変換
「SQL Server」を使用して、タグ内の製品とsql-serverを参照してください。 "MySql"との混乱を避け、MSSQLのようなものはありません。 –
技術的にそのような製品はないかもしれませんが、非常に一般的に使用されている撲滅であり、あなたはそこで潮を泳いでいます。 Googleでの検索では950万回のヒットが返され、そのうちの最初の1つはMicrosoft SQL Serverのホームページ – Cruachan