'YYYY-MM-DD HH:MI:SS‘用varchar还是其他才能被SELECT WEEKDAY转换
时间: 2024-03-20 14:42:37 浏览: 27
在进行日期时间计算时,建议将日期时间数据存储在数据库中的DATE、DATETIME或TIMESTAMP类型的列中,这样更方便进行日期时间计算和查询。如果你的日期时间数据存储在VARCHAR列中,可以使用STR_TO_DATE函数将其转换为日期时间类型,然后再进行计算。
例如,如果你的日期时间数据存储在名为datetime_str的VARCHAR列中,可以使用以下SQL语句进行转换和计算:
```
SELECT WEEKDAY(STR_TO_DATE(datetime_str, '%Y-%m-%d %H:%i:%s')) FROM your_table;
```
其中,%Y-%m-%d %H:%i:%s是日期时间字符串的格式,需要根据实际情况进行修改。your_table是你的数据表名,需要替换为实际的表名。
需要注意的是,由于VARCHAR类型的列中可能包含不合法的日期时间字符串,因此在进行转换时可能会出现错误。为了避免这种情况,建议在进行转换之前先进行数据清洗和校验。
相关问题
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格式相对应的样式代码。
SQL中将yyyy-MM-dd HH:mm:ss转换为yyyyMMddhhmmss
可以使用以下SQL语句将yyyy-MM-dd HH:mm:ss格式的日期时间转换为yyyyMMddhhmmss格式:
```sql
SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), GETDATE(), 120), '-', ''), ' ', ''), ':', ''), '.', ''), 'AM', 'am')
```
其中,GETDATE()表示当前日期时间,CONVERT(VARCHAR(19), GETDATE(), 120)将日期时间转换为yyyy-MM-dd HH:mm:ss格式。然后使用REPLACE函数依次替换掉其中的“-”、“ ”、“:”、“.”和“AM”(或“PM”)字符,最终得到yyyyMMddhhmmss格式的日期时间。