查询字段长度
SELECT LEN(字段名) AS 字段长度 FROM 表名;
判断语句 EXISTS
假设我们有两个表:Orders 和 Customers。
Customers 表:
CustomerID | CustomerName |
---|---|
1 | John Doe |
2 | Jane Smith |
3 | Bob Johnson |
Orders 表:
OrderID | CustomerID | OrderDate |
---|---|---|
101 | 1 | 2022-01-01 |
102 | 2 | 2022-02-01 |
103 | 3 | 2022-03-01 |
如果我们想要查询所有有订单的客户,我们可以使用 EXISTS 语句如下:
SELECT CustomerName
FROM Customers c
WHERE EXISTS (
SELECT 1
FROM Orders o
WHERE c.CustomerID = o.CustomerID
);
在这个查询中,子查询对于 Customers 表中的每一行都会执行一次。如果子查询至少返回一行(即存在与 Customers 表中的当前行 CustomerID 相匹配的 Orders 表中的行),则 EXISTS 条件为 TRUE,并且 Customers 表中的当前行会被包含在结果集中。
结果是:
Customer | Name |
---|---|
John | Doe |
Jane | Smith |
Bob | Johnson |
因为所有客户在 Orders 表中都有对应的订单,所以所有客户都被查询出来。
注意,使用 EXISTS 时,子查询中的 SELECT 子句通常是一个常量(如 SELECT 1),因为我们只关心子查询是否返回结果,而不关心返回的具体内容。
EXISTS 与 IN 运算符在某些情况下可以互换使用,但它们在性能上可能有所不同,特别是在处理大型数据集时。EXISTS 通常比 IN 更快,因为它一旦找到匹配的行就会停止搜索,而 IN 则需要处理完整个子查询的结果集。
时间格式CONVERT语句
将日期时间转换为字符串格式
SELECT CONVERT(VARCHAR, GETDATE(), 120) AS FormattedDate;
在这个例子中,GETDATE() 函数获取当前日期和时间,CONVERT 函数将其转换为 VARCHAR 类型,并使用 120 样式代码(yyyy-mm-dd hh:mi:ss)来格式化输出。
将字符串转换为日期时间格式
SELECT CONVERT(DATETIME, '2023-10-23 12:34:56') AS ConvertedDate;
这里,CONVERT 函数将字符串 ‘2023-10-23 12:34:56’ 转换为 DATETIME 类型。
将日期时间转换为特定的日期格式
SELECT CONVERT(VARCHAR, GETDATE(), 101) AS FormattedDate;
使用样式代码 101(mm/dd/yyyy),CONVERT 函数将日期时间转换为指定的日期格式。
将日期时间转换为特定的时间格式
SELECT CONVERT(VARCHAR, GETDATE(), 108) AS FormattedTime;
使用样式代码 108(hh:mi:ss),CONVERT 函数将日期时间转换为指定的时间格式。
注意事项
1、CONVERT 函数在转换数据时可能会引发错误,如果输入数据的格式与指定的样式不匹配。
2、SQL Server 支持多种日期和时间格式,可以根据需要选择合适的样式代码。
3、在处理日期和时间时,还可以使用其他函数,如 CAST、FORMAT 等。
使用 CAST 函数进行时间格式转换
SELECT CAST(GETDATE() AS VARCHAR(20)) AS FormattedDateTime;
在这个例子中,CAST 函数将当前日期和时间转换为 VARCHAR 类型,默认使用 120 样式代码(yyyy-mm-dd hh:mi:ss)进行格式化。
请根据您的具体需求和数据库环境选择合适的函数和样式代码。
样式码
在 SQL Server 中,CONVERT 函数用于将一种数据类型转换为另一种数据类型。当转换日期和时间数据类型时,CONVERT 函数使用特定的样式码来确定输出的格式。以下是一些常用的日期和时间样式码:
日期样式码
样式码 | 描述 |
---|---|
101 | MM/DD/YYYY |
102 | YYYY.MM.DD |
103 | DD/MM/YYYY |
104 | DD.MM.YYYY |
105 | DD-MM-YYYY |
110 | MM-DD-YYYY |
111 | YYYY/MM/DD |
120 | YYYY-MM-DD hh:mi:ss (ODBC canonical) |
121 | YYYY-MM-DD hh:mi:ss.mmm (ODBC canonical with milliseconds) |
126 | ISO8601 format: YYYY-MM-DDTHH:MI:SS |
127 | ODBC date format |
130 | DD MMM YYYY HH:MI:SS:mmm (24h) |
131 | DD/MM/YYYY HH:MI:SS:mmm (24h) |
时间样式码
样式码 | 描述 |
---|---|
108 | hh:mi:ss |
109 | hh:mi:ss:mmm (3 digit milliseconds) |
112 | YYYYMMDD hh:mi:ss (no separators) |
113 | DD/MM/YYYY hh:mi:ss:mmm (24h) |
120 | YYYY-MM-DD hh:mi:ss (ODBC canonical) |
121 | YYYY-MM-DD hh:mi:ss.mmm (ODBC canonical with milliseconds) |
127 | ODBC time format |
130 | DD MMM YYYY HH:MI:SS:mmm (24h) |
131 | DD/MM/YYYY HH:MI:SS:mmm (24h) |
日期和时间样式码
样式码 | 描述 |
---|---|
20 | YYYY-MM-DD |
21 | YYYY-MM-DD hh:mi:ss |
22 | YYYY-MM-DD hh:mi:ss.mmm (up to 3 decimal places) |
23 | YYYY-MM-DD hh:mi:ss:mmm (up to 3 decimal places) |
24 | YYYY-MM-DD hh:mi:ss.mmmmm (up to 7 decimal places) |
25 | YYYY-MM-DD hh:mi:ss:mmmmm (up to 7 decimal places) |
120 | YYYY-MM-DD hh:mi:ss (ODBC canonical) |
121 | YYYY-MM-DD hh:mi:ss.mmm (ODBC canonical with milliseconds) |
126 | ISO8601 format: YYYY-MM-DDTHH:MI:SS |
127 | ODBC date and time format |
130 | DD MMM YYYY HH:MI:SS:mmm (24h) |
131 | DD/MM/YYYY HH:MI:SS:mmm (24h) |
使用 CONVERT 函数时,样式码是可选的,但如果你希望以特定的格式输出日期或时间,那么提供正确的样式码会非常有用。例如,如果你想要以 YYYY-MM-DD 的格式输出日期,你可以使用样式码 20 或 120。
请注意,这些样式码可能随着 SQL Server 版本的更新而发生变化,因此建议查阅最新的 SQL Server 文档以获取最准确的信息。
标签:语句,MM,DD,mi,server,ss,hh,sql,样式 From: https://blog.csdn.net/a15943801297/article/details/137256134