将日期转换为年、月和日SQL的各个数字列

将日期转换为年、月和日SQL的各个数字列,sql,Sql,我有一个日期列,格式为YY-MON-DD,例如2005年6月25日。是否可以将其分为年、月和日三个单独的列?其中月份从文本转换为数字,例如年:25,月:06,日:05?

我有一个日期列,格式为
YY-MON-DD
,例如
2005年6月25日
。是否可以将其分为年、月和日三个单独的列?其中月份从文本转换为数字,例如年:
25
,月:
06
,日:
05

按照建议,您可以使用
DATEPART
提取每个部分并将其存储到不同的列中

SELECT DATEPART(DAY,'2008-10-22');       -- Returns DAY part i.e 22
SELECT DATEPART(MONTH,'2008-10-22');     -- Returns MONTH part i.e 10
SELECT DATEPART(YEAR,'2008-10-22');      -- Returns YEAR part i.e 2008

如果您使用的是SQL Server,请尝试使用以下脚本

SELECT 'Year: '+CAST(LEFT(YourdateColumn,2) as VARCHAR(2))+', Month: ' +CAST(MONTH('01-'+SUBSTRING(YourdateColumn,4,3)+'-15')as VARCHAR(2))+', Day:'+CAST(RIGHT(YourdateColumn,2)as VARCHAR(2))
 FROM Yourtable
样本输出:
您没有指定您的DBMS

以下是标准SQL,假设列实际上是
日期列

select extract(year from the_column) as the_year,
       extract(month from the_column) as the_month,
       extract(day from the_column) as the_day
from the_table;

您正在使用哪个DBMS?在SQL Server中,使用
DATEPART
提取日期的每个部分:和。在MySQL中,使用与月、周等相关联的日期函数,。。奇迹年:25Hi,问题是这个月被表示为文本。e、 g。2005年6月25日。运行您发送的内容时出错。我有大约74行数据,格式为yy-MON-dd,日期不同。您发送的内容是否会自动为每个日期执行此操作?没有问题,请尝试使用更新的脚本,替换您的实际列名和表名。谢谢,这样做了!