SQL DATELENGTH() 函数

SQL DATELENGTH() 函数

SQL DATELENGTH() 函数返回表示任何表达式所使用的字节数,并计算表达式的前导和尾随空格。此函数可以返回 bigintint 作为数据类型。

如果表达式具有 nvarchar(max)、varbinary(max) 或 varchar(max) 数据类型,则此函数返回 bigint;否则返回 int。

当与可以存储可变长度数据的数据类型一起使用时,此函数非常有用,例如:

  • image
  • ntext
  • nvarchar
  • text
  • varbinary
  • varchar

语法

以下是 SQL DATALENGTH() 函数的语法:

SELECT DATALENGTH(expression);

表达式 − 它接受我们需要返回长度的数据类型。如果表达式为空,则返回 null。

示例

在下面的示例中,我们通过传递简单的表达式演示了 DATALENGTH() 函数的使用。

以下是用于查找给定名称的长度的查询 −

SELECT DATALENGTH('Aman kumar') AS lengthOf_Name;

输出

以下是上述查询的输出:

+----------------+
| lengthOf_Name  |
+----------------+
|             10 |
+----------------+

以下示例返回使用的数据类型的字节数。通过使用不同的数据类型来表示相同的值,可以展示需要多少数据来表示。

以下是查询 –

DECLARE @var_int int = 1
DECLARE @var_smallint smallint = 1
DECLARE @var_decimal decimal = 1
DECLARE @var_bigint bigint = 1

SELECT
   'int' datatype, DATALENGTH(@var_int) bytes
   UNION
SELECT
   'smallint' datatype, DATALENGTH(@var_smallint) bytes
   UNION
SELECT
   'decimal' datatype, DATALENGTH(@var_decimal) bytes
   UNION
SELECT
   'bigint' datatype, DATALENGTH(@var_bigint) bytes

输出

以下是上述查询的输出-

+----------+--------+
| datatype |  bytes |
+----------+--------+
| bigint   |      8 |
+----------+--------+
| decimal  |      5 |
+----------+--------+
| int      |      4 |
+----------+--------+
| smallint |      2 |
+----------+--------+

示例

在下面的示例中,我们将一个日期和一个带有一些空格的单词传递给DATALENGTH()函数,以计算给定表达式的字节数。

以下是SQL查询语句 –

SELECT DATALENGTH(' tutorialspoint.com ') AS word_len, 
DATALENGTH('2023-02-01') AS date_len;

输出

以下是上面查询的输出:

+----------+----------+
| word_len | date_len |
+----------+----------+
|       20 |       10 |
+----------+----------+

示例

在下面的示例中,我们将计算客户表中薪水和地址列中的字节数。

让我们使用CREATE语句创建客户表。

CREATE TABLE customers(
ID INT NOT NULL, 
NAME VARCHAR(30) NOT NULL,
AGE INT NOT NULL, 
ADDRESS CHAR(30), 
SALARY DECIMAL(18, 2));

该表存储有ID、姓名、年龄、地址和薪水信息。现在我们使用INSERT语句向客户表中插入7条记录。

INSERT INTO customers VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
INSERT INTO customers VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
INSERT INTO customers VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
INSERT INTO customers VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
INSERT INTO customers VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
INSERT INTO customers VALUES(6, 'Komal', 22, 'MP', 4500.00);
INSERT INTO customers VALUES(7, 'Aman', 23, 'Ranchi', null);

使用SELECT语句来显示customers表。

SELECT * FROM customers;

以下是客户表 –

+----+----------+-----+-----------+---------+
| ID | NAME     | AGE | ADDRESS   | SALARY  |
+----+----------+-----+-----------+---------+
|  1 | Ramesh   |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan   |  25 | Delhi     | 1500.00 |
|  3 | kaushik  |  23 | Kota      | 2000.00 |
|  4 | Chaitali |  25 | Mumbai    | 6500.00 |
|  5 | Hardik   |  27 | Bhopal    | 8500.00 |
|  6 | Komal    |  22 | MP        | 4500.00 |
|  7 | Aman     |  23 | Ranchi    |    NULL |
+----+----------+-----+-----------+---------+

以下查询显示特定列的字节 –

SELECT 
   DATALENGTH(ADDRESS) AS Address_Bytes,
   DATALENGTH(SALARY) AS Salary_Bytes
   FROM customers;

输出

以下是上述查询的输出结果 −

+---------------+--------------+
| Address_Bytes | Salary_Bytes |
+---------------+--------------+
|            30 |            5 |
|            30 |            5 |
|            30 |            5 |
|            30 |            5 |
|            30 |            5 |
|            30 |            5 |
|            30 |            5 |
+---------------+--------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程