Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Belirtilen biçim ve isteğe bağlı kültürle biçimlendirilmiş bir değer döndürür. Tarih/saat ve sayı değerlerini dize olarak yerel ayar kullanan biçimlendirme için FORMAT
işlevini kullanın. Genel veri türü dönüştürmeleri için CAST
veya CONVERT
kullanın.
Transact-SQL söz dizimi kuralları
Sözdizimi
FORMAT( value , format [ , culture ] )
Bağımsız değişken
değer
Biçimlendirecek desteklenen bir veri türünün ifadesi. Geçerli türlerin listesi için Açıklamalar bölümündeki tabloya bakın.
biçim
nvarchar biçim deseni
biçim bağımsız değişkeni, standart biçim dizesi (örneğin, "C"
veya "D"
) ya da tarihler ve sayısal değerler için özel karakter deseni olarak (örneğin, "MMMM DD, yyyy (dddd)"
) geçerli bir .NET Framework biçim dizesi içermelidir. Bileşik biçimlendirme desteklenmez.
Bu biçimlendirme desenlerinin tam açıklaması için, genel olarak dize biçimlendirmesi, özel tarih ve saat biçimleri ve özel sayı biçimleriyle ilgili .NET Framework belgelerine bakın. Daha fazla bilgi için bkz. Biçimlendirme Türleri.
kültür
İsteğe bağlı nvarchar bir kültür belirten bağımsız değişken.
kültür bağımsız değişkeni sağlanmazsa geçerli oturumun dili kullanılır. Bu dil örtük olarak veya açıkça SET LANGUAGE
deyimi kullanılarak ayarlanır.
kültür bağımsız değişken olarak .NET Framework tarafından desteklenen herhangi bir kültürü kabul eder; SQL Server tarafından açıkça desteklenen dillerle sınırlı değildir.
kültür bağımsız değişkeni geçerli değilse FORMAT
bir hata oluşturur.
Dönüş türleri
nvarchar veya null
Dönüş değerinin uzunluğu,
Açıklamalar
NULL
geçerli değilse döndürülür.
FORMAT
işlevi belirsizdir.
FORMAT
, .NET Framework Ortak Dil Çalışma Zamanı'nın (CLR) varlığına dayanır.
CLR'nin varlığına bağlı olduğundan bu işlev uzaktan kullanılamaz. CLR gerektiren bir işleve uzaktan erişim, uzak sunucuda bir hataya neden olabilir.
FORMAT
, iki nokta üst üste ve noktalardan kaçılması gerektiğini belirten CLR biçimlendirme kurallarına dayanır. Bu nedenle, biçim dizesi (ikinci parametre) iki nokta veya iki nokta içerdiğinde, bir giriş değeri (ilk parametre) veri türü
Aşağıdaki tabloda, .NET Framework eşleme eşdeğer türleriyle birlikte değeri bağımsız değişkeni için kabul edilebilir veri türleri listelenmektedir.
Kategori | Tür | .NET türü |
---|---|---|
Sayısal | büyük | Int64 |
Sayısal | Int | Int32 |
Sayısal | smallint | Int16 |
Sayısal | tinyint | Byte |
Sayısal | ondalık |
SqlDecimal |
Sayısal | Sayısal |
SqlDecimal |
Sayısal | yüzmek | Double |
Sayısal | Gerçek | Single |
Sayısal | küçük para | Decimal |
Sayısal | para | Decimal |
Tarih ve Saat | tarih | DateTime |
Tarih ve Saat | saat | TimeSpan |
Tarih ve Saat | datetime |
DateTime |
Tarih ve Saat | smalldatetime | DateTime |
Tarih ve Saat | datetime2 |
DateTime |
Tarih ve Saat | datetimeoffset |
DateTimeOffset |
Örnekler
A. Basit FORMAT örneği
Aşağıdaki örnek, farklı kültürler için biçimlendirilmiş basit bir tarih döndürür.
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)';
Sonuç kümesi aşağıdadır.
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. Özel biçimlendirme dizeleriyle FORMAT
Aşağıdaki örnekte, özel bir biçim belirterek sayısal değerlerin biçimlendirilmesi gösterilmektedir. Örnekte geçerli tarihin 9 Ağustos 2024 olduğu varsayılır. Bu biçimler ve diğer özel biçimler hakkında daha fazla bilgi için bkz. Özel Sayısal Biçim Dizeleri.
DECLARE @d AS DATE = GETDATE();
SELECT FORMAT(@d, 'dd/MM/yyyy', 'en-US') AS 'Date',
FORMAT(123456789, '###-##-####') AS 'Custom Number';
Sonuç kümesi aşağıdadır.
Date Custom Number
----------- --------------
09/08/2024 123-45-6789
C. Sayısal türlerle FORMAT
Aşağıdaki örnek, Sales.CurrencyRate
veritabanındaki AdventureWorks2022
tablosundan beş satır döndürür. Sütun
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;
Sonuç kümesi aşağıdadır.
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
Bu örnek, Almanca kültürünü (de-de
) belirtir.
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. Zaman veri türleriyle FORMAT
FORMAT
ve NULL
kaçışı olmadığından .
bu durumlarda :
döndürür.
SELECT FORMAT(CAST('07:35' AS TIME), N'hh.mm'); --> returns NULL
SELECT FORMAT(CAST('07:35' AS TIME), N'hh:mm'); --> returns NULL
biçim, .
ve :
kaçtığı için biçimlendirilmiş bir dize döndürür.
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
Biçim, veya PM belirtilen biçimlendirilmiş bir geçerli saat döndürür.
SELECT FORMAT(SYSDATETIME(), N'hh:mm tt'); --> returns 03:46 PM
SELECT FORMAT(SYSDATETIME(), N'hh:mm t'); --> returns 03:46 P
Biçim belirtilen saati döndürerek değerini görüntüler.
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
Biçim, belirtilen saati döndürür ve PM'yi görüntüler.
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
Biçim, belirtilen saati 24 saatlik biçimde döndürür.
SELECT FORMAT(CAST('2018-01-01 14:00' AS DATETIME2), N'HH:mm'); --> returns 14:00
E. Büyük sayılar için virgül ayırıcıları ile biçimlendirme
Aşağıdaki örnekte, büyük sayıların virgül ayırıcılarla nasıl biçimlendirilir gösterilmektedir.
SELECT FORMAT(1234567.89, 'N0') AS FormattedNumber;
Sonuç kümesi aşağıdadır.
1,234,568
Bu örnekte N
biçim tanımlayıcısı kullanılır.
N
tanımlayıcısı sayısal değerler için kullanılır ve biçim dizesi değiştirilerek ondalık basamak sayısı ayarlanabilir (örneğin, iki ondalık basamak için N2
).
FORMAT ( value, format_string [, culture ] )
Parametre
-
value
: Biçimlendirecek değer. -
format_string
: Uygulanacak biçimi belirten bir dize. -
culture
: (İsteğe bağlı) Biçimlendirme için kullanılacak kültürü belirten bir dize.
SELECT FORMAT(1234567.89, 'N0') AS FormattedNumber;
1,234,568