Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
A megadott formátummal és opcionális kultúrával formázott értéket ad vissza. Használja a FORMAT függvényt a dátum/idő és a számértékek sztringként való területi beállításával. Általános adattípus-átalakításokhoz használja CAST vagy CONVERT.
Transact-SQL szintaxis konvenciói
Szintaxis
FORMAT( value , format [ , culture ] )
Érvek
érték
A formázandó támogatott adattípus kifejezése. Az érvényes típusok listáját a Megjegyzések szakaszban találja.
formátum
nvarchar formátummintát.
A formátum argumentumnak érvényes .NET-keretrendszerformátum-sztringet kell tartalmaznia, akár standard formátumú sztringként (például "C" vagy "D"), akár dátumok és numerikus értékek egyéni karaktermintájaként (például "MMMM DD, yyyy (dddd)"). Az összetett formázás nem támogatott.
Ezeknek a formázási mintáknak a teljes ismertetéséhez tekintse meg a .NET-keretrendszer sztringformázási dokumentációját általában, az egyéni dátum- és időformátumokat, valamint az egyéni számformátumokat. További információ: Formázási típusok.
kultúra
Nem kötelező nvarchar argumentum, amely egy kultúrát határoz meg.
Ha a kultúra argumentum nincs megadva, a rendszer az aktuális munkamenet nyelvét használja. Ez a nyelv implicit módon vagy explicit módon van beállítva a SET LANGUAGE utasítás használatával.
kultúra a .NET-keretrendszer által támogatott összes kultúrát argumentumként fogadja el; ez nem korlátozódik az SQL Server által kifejezetten támogatott nyelvekre. Ha a kultúra argumentum érvénytelen, FORMAT hibát jelez.
Visszatérési típusok
nvarchar vagy null
A visszatérési érték hosszát a formátumhatározza meg.
Megjegyzések
FORMAT
NULL a nem kulturálisérvényes. A NULL például akkor lesz visszaadva, ha a formátumban megadott érték nem érvényes.
A FORMAT függvény nem determinisztikus.
FORMAT a .NET Framework Common Language Runtime (CLR) jelenlétére támaszkodik.
Ez a függvény nem távolható el, mivel a CLR jelenlététől függ. A CLR-t igénylő függvény újbóli létrehozása hibát okozhat a távoli kiszolgálón.
FORMAT CLR-formázási szabályokra támaszkodik, amelyek azt diktálják, hogy a kettőspontokat és az időszakokat meg kell szökni. Ezért ha a formátumsztring (második paraméter) kettőspontot vagy pontot tartalmaz, a kettőspontot vagy az időszakot fordított perjellel kell feloldani, ha egy bemeneti érték (első paraméter) idő adattípus. Lásd: D. FORMAT időadattípusokkal.
Az alábbi táblázat felsorolja a érték elfogadható adattípusait argumentumot a .NET-keretrendszer megfeleltetési egyenértékű típusaival együtt.
| Kategória | Típus | .NET-típus |
|---|---|---|
| Numerikus | bigint | Int64 |
| Numerikus | Int32 |
|
| Numerikus | kis | Int16 |
| Numerikus | apró | Byte |
| Numerikus | decimális | SqlDecimal |
| Numerikus | numerikus | SqlDecimal |
| Numerikus | lebegőpontos | Double |
| Numerikus | valódi | Single |
| Numerikus | smallmoney | Decimal |
| Numerikus | pénz | Decimal |
| Dátum és idő | dátum | DateTime |
| Dátum és idő | idő | TimeSpan |
| Dátum és idő | datetime | DateTime |
| Dátum és idő | smalldatetime | DateTime |
| Dátum és idő | datetime2 | DateTime |
| Dátum és idő | datetimeoffset | DateTimeOffset |
Példák
Egy. Egyszerű FORMÁTUM – példa
Az alábbi példa egy különböző kultúrákhoz formázott egyszerű dátumot ad vissza.
DECLARE @d AS DATE = '08/09/2024';
SELECT FORMAT(@d, 'd', 'en-US') AS 'US English',
FORMAT(@d, 'd', 'en-gb') AS 'British English',
FORMAT(@d, 'd', 'de-de') AS 'German',
FORMAT(@d, 'd', 'zh-cn') AS 'Chinese Simplified (PRC)';
SELECT FORMAT(@d, 'D', 'en-US') AS 'US English',
FORMAT(@d, 'D', 'en-gb') AS 'British English',
FORMAT(@d, 'D', 'de-de') AS 'German',
FORMAT(@d, 'D', 'zh-cn') AS 'Chinese Simplified (PRC)';
Itt van az eredményhalmaz.
US English British English German Simplified Chinese (PRC)
----------- ---------------- ----------- -------------------------
8/9/2024 09/08/2024 09.08.2024 2024/8/9
US English British English German Chinese (Simplified PRC)
----------------------- ---------------- ------------------------ -------------------------
Friday, August 9, 2024 09 August 2024 Freitag, 9. August 2024 2024年8月9日
B. FORMÁZÁS egyéni formázási sztringekkel
Az alábbi példa a numerikus értékek egyéni formátum megadásával történő formázását mutatja be. A példa feltételezi, hogy az aktuális dátum 2024. augusztus 9. További információ ezekről és más egyéni formátumokról: Egyéni numerikus formázási sztringek.
DECLARE @d AS DATE = GETDATE();
SELECT FORMAT(@d, 'dd/MM/yyyy', 'en-US') AS 'Date',
FORMAT(123456789, '###-##-####') AS 'Custom Number';
Itt van az eredményhalmaz.
Date Custom Number
----------- --------------
09/08/2024 123-45-6789
C. FORMÁTUM numerikus típusokkal
Az alábbi példa öt sort ad vissza a Sales.CurrencyRate adatbázis AdventureWorks2025 táblájából. A EndOfDateRate oszlop pénz típusúként van tárolva a táblában. Ebben a példában az oszlop formázás nélkül lesz visszaadva, majd a .NET-számformátum, az Általános formátum és a Pénznem formátumtípus megadásával lesz formázva. További információ ezekről és más numerikus formátumokról: Standard numerikus formázási sztringek.
SELECT TOP (5) CurrencyRateID,
EndOfDayRate,
FORMAT(EndOfDayRate, 'N', 'en-us') AS 'Numeric Format',
FORMAT(EndOfDayRate, 'G', 'en-us') AS 'General Format',
FORMAT(EndOfDayRate, 'C', 'en-us') AS 'Currency Format'
FROM Sales.CurrencyRate
ORDER BY CurrencyRateID;
Itt van az eredményhalmaz.
CurrencyRateID EndOfDayRate Numeric Format General Format Currency Format
-------------- ------------ -------------- -------------- ---------------
1 1.0002 1.00 1.0002 $1.00
2 1.55 1.55 1.5500 $1.55
3 1.9419 1.94 1.9419 $1.94
4 1.4683 1.47 1.4683 $1.47
5 8.2784 8.28 8.2784 $8.28
Ez a példa a német kultúrát (de-de) határozza meg.
SELECT TOP (5) CurrencyRateID,
EndOfDayRate,
FORMAT(EndOfDayRate, 'N', 'de-de') AS 'Numeric Format',
FORMAT(EndOfDayRate, 'G', 'de-de') AS 'General Format',
FORMAT(EndOfDayRate, 'C', 'de-de') AS 'Currency Format'
FROM Sales.CurrencyRate
ORDER BY CurrencyRateID;
CurrencyRateID EndOfDayRate Numeric Format General Format Currency Format
-------------- ------------ -------------- -------------- ---------------
1 1.0002 1,00 1,0002 1,00 €
2 1.55 1,55 1,5500 1,55 €
3 1.9419 1,94 1,9419 1,94 €
4 1.4683 1,47 1,4683 1,47 €
5 8.2784 8,28 8,2784 8,28 €
D. FORMÁTUM idő adattípusokkal
FORMAT ezekben az esetekben NULL ad vissza, mert . és : nem szöktek meg.
SELECT FORMAT(CAST('07:35' AS TIME), N'hh.mm'); --> returns NULL
SELECT FORMAT(CAST('07:35' AS TIME), N'hh:mm'); --> returns NULL
A formátum formázott sztringet ad vissza, mert a . és a : ki vannak menekülve.
SELECT FORMAT(CAST('07:35' AS TIME), N'hh\.mm'); --> returns 07.35
SELECT FORMAT(CAST('07:35' AS TIME), N'hh\:mm'); --> returns 07:35
A formátum egy formázott aktuális időt ad vissza am vagy PM megadva.
SELECT FORMAT(SYSDATETIME(), N'hh:mm tt'); --> returns 03:46 PM
SELECT FORMAT(SYSDATETIME(), N'hh:mm t'); --> returns 03:46 P
A Formátum a megadott időpontot adja vissza, és az AM értéket jeleníti meg.
SELECT FORMAT(CAST('2018-01-01 01:00' AS DATETIME2), N'hh:mm tt'); --> returns 01:00 AM
SELECT FORMAT(CAST('2018-01-01 01:00' AS DATETIME2), N'hh:mm t'); --> returns 01:00 A
A formátum a megadott időpontot adja vissza, és megjeleníti a PM értéket.
SELECT FORMAT(CAST('2018-01-01 14:00' AS DATETIME2), N'hh:mm tt'); --> returns 02:00 PM
SELECT FORMAT(CAST('2018-01-01 14:00' AS DATETIME2), N'hh:mm t'); --> returns 02:00 P
A formátum a megadott időt adja vissza 24 órás formátumban.
SELECT FORMAT(CAST('2018-01-01 14:00' AS DATETIME2), N'HH:mm'); --> returns 14:00
E. Formázás vesszőelválasztókkal nagy számokhoz
Az alábbi példa bemutatja, hogyan formázhat nagy számokat vesszőelválasztókkal.
SELECT FORMAT(1234567.89, 'N0') AS FormattedNumber;
Itt van az eredményhalmaz.
1,234,568
Ez a példa a N formátumjelölőt használja. A N-azonosító numerikus értékekhez használatos, a tizedesjegyek száma pedig módosítható a formátumsztring módosításával (például két tizedesjegyhez N2).
FORMAT ( value, format_string [, culture ] )
Paraméterek
-
value: A formázandó érték. -
format_string: Az alkalmazandó formátumot meghatározó sztring. -
culture: (Nem kötelező) A formázáshoz használni kívánt kultúrát meghatározó sztring.
SELECT FORMAT(1234567.89, 'N0') AS FormattedNumber;
1,234,568