从SQL DATE获取仅月份和年份
我只需要从SQL Server中的Date字段访问Month.Year。
。
以及已经提出的build议,还有一个可能性,我可以从你的问题推断:
– 你仍然希望结果成为一个date
– 但是你想“丢弃”天,小时等
– 留下一年/月只date字段
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field] FROM <your_table>
这从基准date(0)获得整个月份的数量,然后将它们添加到该基准date。 从而向下舍入到date所在的月份。
注意:在SQL Server 2008中,您仍将TIME附加为00:00:00.000这与完全删除所有date和时间的表示法并不完全相同。 也是第一天设置。 2009-10-01 00:00:00.000
select month(dateField), year(dateField)
SELECT DATEPART(yy, DateVal) SELECT DATEPART(MM, DateVal) SELECT DATENAME(MM, DateVal)
SELECT convert(varchar(7), getdate(), 126)
你可能想看看这个网站: http : //anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
datename(m,column)+' '+cast(datepart(yyyy,column) as varchar) as MonthYear
输出将如下所示:“2013年12月”
有两个SQL函数可以做到这一点:
- DATEPART()
- YEAR()和MONTH() 。
有关详细信息,请参阅MSDN文档 。
这也可以有帮助。
SELECT YEAR(0), MONTH(0), DAY(0);
要么
SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());
要么
SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);
让我们这样写: YEAR(anySqlDate)
和MONTH(anySqlDate)
。 例如,试用YEAR(GETDATE())
。
convert(varchar(7), <date_field>, 120) because 120 results in 'yyyy-MM-dd' which is varchar(10) using varchar(7) will display only year and month example: select convert(varchar(7), <date_field>, 120), COUNT(*) from <some_table> group by convert(varchar(7), <date_field>, 120) order by 1
我用两种方式来解释你的问题。
a)你只需要月份和年份,在这种情况下,这是答案
select [YEAR] = YEAR(getdate()) ,[YEAR] = DATEPART(YY,getdate()) , [MONTH] = month(getdate()) ,[MONTH] = DATEPART(mm,getdate()) ,[MONTH NAME] = DATENAME(mm, getdate())
b)
您想要以MONTH.YEAR格式显示给定的date,例如'2009-11-24 09:01:55.483'
。 所以在这种情况下产量应该是11.2009
。
如果这应该是这样的话,试试这个(其他的select)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7)
尝试这个
select to_char(DATEFIELD,'MON') from YOUR_TABLE
例如。
select to_char(sysdate, 'MON') from dual
CONCAT(datepart(yy,DATE),FORMAT(date,'MM'))
给你例如201601,如果你想要一个六位数的结果
我的数据库不支持大多数上述function,但我发现这个工程:
SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;
例如: SELECT SUBSTR(created, 1,7) FROM table;
以“yyyy-mm”格式返回年份和月份