sql语句 字符串是2021-09-11,如何截取数据获得是字符串2021-09
时间: 2024-11-15 13:22:22 浏览: 20
SQL Server把某个字段的数据用一条语句转换成字符串
5星 · 资源好评率100%
在SQL中,你可以使用内置的函数或正则表达式来截取特定格式的字符串,如"2021-11"。这里有几个例子:
1. **MySQL**: 使用SUBSTRING_INDEX()函数(如果可用)
```sql
SELECT SUBSTRING_INDEX('2021-09-11', '-', 2) AS 'YearMonth';
```
这将截取到"-"分隔的第一、二部分。
2. **Oracle**: 使用INSTR()和SUBSTR()
```sql
SELECT SUBSTR('2021-09-11', INSTR('2021-09-11', '-') + 1, 7) AS 'YearMonth';
```
INSTR()找到第一个"-"的位置,然后从那里开始取7个字符。
3. **SQL Server**: 使用PATINDEX()和LEFT()
```sql
SELECT LEFT('2021-09-11', CHARINDEX('-', '2021-09-11') - 1) AS 'YearMonth';
```
PATINDEX()找到第一个"-"的位置,LEFT()截取到该位置前的所有字符。
4. **PostgreSQL**: 使用EXTRACT()和substring()
```sql
SELECT substring('2021-09-11' FROM '^(.*?)-') AS 'YearMonth';
```
这里的正则表达式匹配直到遇到第一个"-"为止。
请注意,上述所有示例假设你的数据库支持这些函数。如果不确定,建议查阅具体的文档来确认正确的语法。
阅读全文