将 varchar(150) 转换为 sql workbench 中的日期时间
Covert varchar(150) to datetime in sql workbench
我有一列的值“2015-02-14 12:23 AM”声明为 varchar(150),我尝试使用 to_date、转换和转换但无法更改格式.我需要这个来过滤特定的 month/year/day。感谢帮助
PS:Mysql 实例通过亚马逊 AWS 在 RDS 上 运行 - 不确定它是否相关
我建议以正确的日期数据类型存储日期。
to_date 是一个 Oracle 函数。
在MySQL中,可以用STR_TO_DATE to converts a string to date then use Date_format给出自己需要的格式
SELECT DATE_FORMAT(STR_TO_DATE(dt,'%Y-%m-%d %h:%i %p'),'%m/%Y/%d')
from test;
您可以将子字符串与 concat 一起使用,而无需转换为日期格式:
select concat(substring(dt,6,2),'/', substring(dt,1,4),'/',substring(dt,9,2)) as my_date
from test;
SELECT CAST( SUBSTRING_INDEX( '2015-02-14 12:23 AM',
' ',
2
)
AS DATETIME
)
returns 日期时间值。如果您需要在日期时间上下文中使用此值,则可以删除 CAST,它将隐式执行:
SELECT TIMESTAMPDIFF ( MINUTE,
SUBSTRING_INDEX( '2015-02-14 12:23 AM',
' ',
2
),
'2015-02-14 12:34'
)
我有一列的值“2015-02-14 12:23 AM”声明为 varchar(150),我尝试使用 to_date、转换和转换但无法更改格式.我需要这个来过滤特定的 month/year/day。感谢帮助
PS:Mysql 实例通过亚马逊 AWS 在 RDS 上 运行 - 不确定它是否相关
我建议以正确的日期数据类型存储日期。
to_date 是一个 Oracle 函数。
在MySQL中,可以用STR_TO_DATE to converts a string to date then use Date_format给出自己需要的格式
SELECT DATE_FORMAT(STR_TO_DATE(dt,'%Y-%m-%d %h:%i %p'),'%m/%Y/%d')
from test;
您可以将子字符串与 concat 一起使用,而无需转换为日期格式:
select concat(substring(dt,6,2),'/', substring(dt,1,4),'/',substring(dt,9,2)) as my_date
from test;
SELECT CAST( SUBSTRING_INDEX( '2015-02-14 12:23 AM',
' ',
2
)
AS DATETIME
)
returns 日期时间值。如果您需要在日期时间上下文中使用此值,则可以删除 CAST,它将隐式执行:
SELECT TIMESTAMPDIFF ( MINUTE,
SUBSTRING_INDEX( '2015-02-14 12:23 AM',
' ',
2
),
'2015-02-14 12:34'
)