DATALENGTH ( expression )
expression:任意型別運算式。INT:儲存該運算式所佔用的位元組數。NULL,回傳 NULL。特別適合可變長度資料型別:
固定長度型別 (`CHAR`, `NCHAR`, `INT`, `DATETIME` 等) 回傳定義長度,較無參考價值。
資料庫相容性等級 (`sp_dbcmptlevel`) 可能影響某些型別的回傳值,升級/遷移時請實測驗證。
USE pubs
GO
SELECT
DATALENGTH(pub_name) AS ByteLen,
pub_name
FROM publishers
ORDER BY pub_name
GO
ByteLen pub_name
------- ------------------------------
20 Algodata Infosystems
16 Binnet & Hardley
21 Five Lakes Publishing
5 GGG&G
18 Lucerne Publishing
14 New Moon Books
17 Ramona Publishers
14 Scootney Books
-- CHAR(20) 欄位實際內容 'ABC' 佔 3 字元,但 DATALENGTH 回傳 20
-- 若用 VARCHAR(20) 則回傳 3
SELECT DATALENGTH(col_char), DATALENGTH(col_varchar) FROM test_table
SELECT DATALENGTH(ncol) / 2 AS CharCount FROM test_table
SELECT DATALENGTH(image_col) / 1024.0 AS SizeKB FROM documents
| 函數 | 回傳 | 尾端空白 | NULL 處理 | 適用型別 |
|---|---|---|---|---|
| LEN | 字元數 (不含尾端空白) | 忽略 | NULL | 字串型別 |
| DATALENGTH | 位元組數 (含尾端空白) | 計入 | NULL | 所有型別 |