sql server取"总经办-20230504003","string-20230504-005","总经办-20230504-004" 根据中间20230504-003部分做比较
时间: 2023-10-22 15:07:23 浏览: 26
可以使用 SQL Server 的 SUBSTRING 函数来提取中间的部分,然后使用比较运算符进行比较。假设数据存储在一个名为 `table_name` 的表中,中间部分的位置固定为第 8 到第 18 个字符,可以使用以下 SQL 查询:
```
SELECT * FROM table_name
WHERE SUBSTRING(column_name, 9, 10) = '20230504-003'
```
其中 `column_name` 是包含字符串的列名。这个查询将返回中间部分为 "20230504-003" 的所有字符串。
相关问题
sql server取"总经办-202305040-003","string-20230504-005","总经办-20230504-004" 根据中间20230504-003查出最大的编号
假设这些编号都是存储在一个名为`table_name`的表中的一个名为`column_name`的列中,可以使用以下SQL查询语句来实现所需的结果:
```
SELECT MAX(RIGHT(column_name, 3))
FROM table_name
WHERE column_name LIKE '%20230504-003%'
```
解释一下上述查询语句:
- `RIGHT(column_name, 3)`函数会返回列`column_name`中每个值的后三个字符,即编号中的数字部分。
- `MAX()`函数会返回这些数字中的最大值。
- `WHERE`子句用于筛选出包含字符串"20230504-003"的编号。
这样就可以取出"总经办-202305040-003","string-20230504-005","总经办-20230504-004"中间20230504-003的最大编号了。
sqlserver将yyyy-mm-dd转换成yyyy-mm
在SQL Server中,可以使用函数`CONVERT`来将日期格式从`yyyy-MM-dd`转换为`yyyy-MM`。下面是两种不同的方法来实现这个转换:
方法一:使用`CONVERT`函数
```sql
SELECT CONVERT(varchar(7), date_time_column, 120) AS converted_date
FROM your_table;
```
方法二:使用`FORMAT`函数
```sql
SELECT FORMAT(date_time_column, 'yyyy-MM') AS converted_date
FROM your_table;
```
请注意,上述代码中的`date_time_column`是你要转换的日期列的名称,`your_table`是你要查询的表的名称。