sql >> Database >  >> RDS >> Sqlserver

SWITCHOFFSET() Voorbeelden in SQL Server

In SQL Server, de SWITCHOFFSET() functie kan worden gebruikt om een ​​datetimeoffset . te retourneren waarde die is gewijzigd van de opgeslagen tijdzone-offset naar een gespecificeerde nieuwe tijdzone-offset.

Hieronder staan ​​voorbeelden van hoe deze functie werkt.

Syntaxis

Ten eerste, hier is hoe de syntaxis werkt:

SWITCHOFFSET ( DATETIMEOFFSET, time_zone )

Waar DATETIMEOFFSET is een uitdrukking die kan worden omgezet in een datetimeoffset(n) waarde, en time_zone is een tekenreeks in het formaat [+|-]TZH:TZM of een geheel getal met teken (van minuten) dat de tijdzone-offset vertegenwoordigt, en wordt verondersteld bewust te zijn van de zomertijd en aangepast.

Het resultaat wordt geretourneerd als een datetimeoffset met de fractionele precisie van de DATETIMEOFFSET argument.

Voorbeeld 1

Hier is een eenvoudig gebruiksvoorbeeld:

SELECT SWITCHOFFSET( '2112-01-01', '+08:00' ) AS Result;

Resultaat:

Result
----------------------------------
2112-01-01 08:00:00.0000000 +08:00

Voorbeeld 2

In dit voorbeeld wordt een negatieve waarde gebruikt:

SELECT SWITCHOFFSET( '2112-01-01', '-08:00' ) AS Result;

Resultaat:

Result
----------------------------------
2111-12-31 16:00:00.0000000 -08:00

Voorbeeld 4

In dit voorbeeld declareren we een variabele en wijzen er een datum aan toe met behulp van de datetimeoffset data type. We passen dan SWITCHOFFSET() . toe tot die datum en vergelijk deze met de oorspronkelijke datum.

DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00';
SELECT 
    @date AS 'Original Date',
    SWITCHOFFSET( @date, '+08:00' ) AS '+08:00';

Resultaat:

Original Date                      +08:00
---------------------------------- ----------------------------------
2112-01-01 00:00:00.0000000 +04:00 2112-01-01 04:00:00.0000000 +08:00

Voorbeeld 5

Hier doen we hetzelfde als het vorige voorbeeld, maar we gebruiken de SYSDATETIMEOFFSET() functie om de huidige datum/tijd en offset te genereren.

SELECT 
    SYSDATETIMEOFFSET() AS 'Current Date',
    SWITCHOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';

Resultaat:

Current Date                       +08:00
---------------------------------- ----------------------------------
2018-06-05 17:05:36.9415309 +10:00 2018-06-05 15:05:36.9415309 +08:00

Voorbeeld 6

Dit voorbeeld is hetzelfde als het vorige, behalve dat we een negatieve waarde toevoegen.

SELECT 
    SYSDATETIMEOFFSET() AS 'Current Date',
    SWITCHOFFSET( SYSDATETIMEOFFSET(), '-08:00' ) AS '-08:00';

Resultaat:

Current Date                       -08:00
---------------------------------- ----------------------------------
2018-06-05 17:12:07.1122856 +10:00 2018-06-04 23:12:07.1122856 -08:00

Voorbeeld 7

U kunt de tijdzone-offset ook opgeven als een geheel getal in plaats van een tekenreeks:

SELECT SWITCHOFFSET( '2112-01-01', -180 ) AS Result;

Resultaat:

Result
----------------------------------
2111-12-31 21:00:00.0000000 -03:00

  1. Registreer en voer PostgreSQL 9.0 uit als Windows-service

  2. Bulk/batch update/upsert in PostgreSQL

  3. De pt-pg-summary Percona Toolkit voor PostgreSQL gebruiken

  4. Deelnemen aan MAX datumrecord in groep