sqlserver 两个varchar 类型字段拼接后转时间格式为yyyy-mm 咋转
时间: 2024-03-11 18:49:01 浏览: 21
可以使用SQL Server内置的转换函数CONVERT将拼接后的字符串转换为datetime类型,然后再使用CONVERT将datetime类型转换为yyyy-mm格式的字符串。具体的SQL语句如下:
```sql
SELECT CONVERT(varchar(7), CONVERT(datetime, CONCAT('2021-08-', '01')), 23)
```
其中,CONCAT函数将两个varchar类型的字段'2021-08-'和'01'拼接成一个字符串'2021-08-01',第一个CONVERT函数将该字符串转换为datetime类型,第二个CONVERT函数将datetime类型转换为yyyy-mm格式的字符串。函数中的23表示输出格式为yyyy-mm。
需要注意的是,拼接后的字符串必须符合datetime类型的格式要求,否则会抛出错误。如果不确定拼接后的字符串格式是否符合要求,可以使用TRY_CONVERT函数进行转换,它会返回NULL而不是抛出错误。例如:
```sql
SELECT CONVERT(varchar(7), TRY_CONVERT(datetime, CONCAT('2021/08/', '01')), 23)
```
这里使用了斜杠分隔符,不符合datetime类型的格式要求,但由于使用了TRY_CONVERT函数,所以查询结果会返回NULL。
相关问题
sqlserver varchar 类型转时间格式为yyyy-mm 咋转
可以使用SQL Server内置的转换函数CONVERT将varchar类型转换为datetime类型,然后再使用CONVERT将datetime类型转换为yyyy-mm格式的字符串。具体的SQL语句如下:
```sql
SELECT CONVERT(varchar(7), CONVERT(datetime, '2021-08-01'), 23)
```
其中,第一个CONVERT函数将字符串'2021-08-01'转换为datetime类型,第二个CONVERT函数将datetime类型转换为yyyy-mm格式的字符串。函数中的23表示输出格式为yyyy-mm。
如果你的varchar类型的值不符合转换为datetime类型的格式要求,可以尝试使用TRY_CONVERT函数,它会返回NULL而不是抛出错误。例如:
```sql
SELECT CONVERT(varchar(7), TRY_CONVERT(datetime, '2021/08/01'), 23)
```
这里使用了斜杠分隔符,不符合转换格式的要求,但由于使用了TRY_CONVERT函数,所以查询结果会返回NULL。
sql server 转换yyyyMMddHHmmss格式为yyyy-MM-dd HH:mm:ss
你可以使用 CONVERT 函数将格式从yyyyMMddHHmmss转换为yyyy-MM-dd HH:mm:ss。以下是示例代码:
```sql
SELECT CONVERT(varchar(19), CONVERT(datetime, '20211231120000'), 120) AS formatted_date
```
这将把字符串'20211231120000'转换为日期时间格式,然后将其转换为yyyy-MM-dd HH:mm:ss格式的字符串。输出将是:
```
formatted_date
-------------------
2021-12-31 12:00:00
```
在这个示例中,120是 CONVERT 函数中与yyyy-MM-dd HH:mm:ss格式相对应的样式代码。