Mysql 从MM-DD-YYYY格式sql获取月份
我试图从date列中只获取月份,但我似乎无法使用我的查询获取它Mysql 从MM-DD-YYYY格式sql获取月份,mysql,sql,database,Mysql,Sql,Database,我试图从date列中只获取月份,但我似乎无法使用我的查询获取它 DATE是我的列字段,我只想显示月份。你们谁能在这方面帮助我 查询: SELECT MONTH(CONVERT(VARCHAR(8), GETDATE(DATE), 1)) FROM adjtime WHERE EMPLOYEE = 302 如果您有一个DATE列,那么在SQL Server中,您可以通过执行以下操作来获取数字月份: select month(datecol) 或 如果需要月份名称,请使用datename():
DATE
是我的列字段,我只想显示月份。你们谁能在这方面帮助我
查询:
SELECT MONTH(CONVERT(VARCHAR(8), GETDATE(DATE), 1)) FROM adjtime WHERE EMPLOYEE = 302
如果您有一个
DATE
列,那么在SQL Server中,您可以通过执行以下操作来获取数字月份:
select month(datecol)
或
如果需要月份名称,请使用datename()
:
甲骨文?SQL Server?MySQL Oracle语法:
TO_CHAR('05/29/2017', 'MONTH')
好吧,MySql有
month
和monthname
功能。你可以在报纸上读到他们
因此,如果是MySql,您的查询可能如下所示:
SELECT MONTH(`DATE`)
FROM `adjtime`
WHERE `EMPLOYEE` = 302
要获取月份名称,请使用以下命令:
SELECT MONTHNAME(`DATE`)
FROM `adjtime`
WHERE `EMPLOYEE` = 302
如果
DATE
是varchar格式,则需要使用
STR_TO_DATE(`DATE`, '%m/%d/%Y')
使用示例数据执行示例:
CREATE TABLE `adjtime` (EMPLOYEE int, `DATE` VARCHAR (20) );
INSERT INTO `adjtime` (EMPLOYEE , `DATE`)
SELECT 302, '1/1/2017' UNION
SELECT 302, '11/22/2017' UNION
SELECT 302, '2/20/2017' UNION
SELECT 301, '3/6/2017';
SELECT MONTH(STR_TO_DATE(`DATE`, '%m/%d/%Y')) AS `MonthNumber`
FROM `adjtime`
WHERE `EMPLOYEE` = 302;
或
Rextester演示:您的代码看起来很像SQL Server,所以我更改了标记。列
DATE
的数据类型是DATETIME
还是其他?我不明白为什么要使用GETDATE(DATE)
,在这种情况下选择月份(CONVERT(VARCHAR(8),[DATE],1))
将起作用。我的日期列类似于2017年1月1日。。。。我使用的是MySqlphpmyadmin@VirgilCruz根据您的上一条评论,我已将Sql Server标记更改为MySql。查询成功。但它返回空结果。。我的日期格式为2017年1月1日。可能其读数如2017.1.1?日期未以显示格式存储。无论如何,我看到阿鲁库玛已经给了你正确的答案。@VirgilCruz请让这成为你如何提出一个好问题的一个教训。戈登猜测是Sql Server。杨猜到了甲骨文。我猜您的列是日期/日期时间数据类型。请不要让我们猜。首先在问题中包括所有相关细节。
STR_TO_DATE(`DATE`, '%m/%d/%Y')
CREATE TABLE `adjtime` (EMPLOYEE int, `DATE` VARCHAR (20) );
INSERT INTO `adjtime` (EMPLOYEE , `DATE`)
SELECT 302, '1/1/2017' UNION
SELECT 302, '11/22/2017' UNION
SELECT 302, '2/20/2017' UNION
SELECT 301, '3/6/2017';
SELECT MONTH(STR_TO_DATE(`DATE`, '%m/%d/%Y')) AS `MonthNumber`
FROM `adjtime`
WHERE `EMPLOYEE` = 302;
SELECT MONTHNAME(STR_TO_DATE(`DATE`, '%m/%d/%Y')) AS `MonthName`
FROM `adjtime`
WHERE `EMPLOYEE` = 302;