Mat*_*lie 160
除了已经提出的建议之外,我还可以从你的问题中推断出另一个
可能性:- 你仍然希望结果是一个约会
- 但你想要"丢弃"天,小时等
- 离开一年/月只有日期字段
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
<your_table>
Run Code Online (Sandbox Code Playgroud)
这将从基准日期(0)获取整月的数量,然后将它们添加到该基准日期.因此舍入到日期所在的月份.
注意:在SQL Server 2008中,您仍然将TIME附加为00:00:00.000这与"删除"任何日期和时间的符号并不完全相同.DAY也设置为第一个.例如2009-10-01 00:00:00.000
Luc*_*ala 125
select month(dateField), year(dateField)
Run Code Online (Sandbox Code Playgroud)
Ren*_*007 33
SELECT convert(varchar(7), getdate(), 126)
Run Code Online (Sandbox Code Playgroud)
您可能想看看这个网站:http: //anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
Adr*_*der 32
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)
Run Code Online (Sandbox Code Playgroud)
Val*_*ych 16
datename(m,column)+' '+cast(datepart(yyyy,column) as varchar) as MonthYear
Run Code Online (Sandbox Code Playgroud)
输出结果如下:'2013年12月'
NoN*_*aMe 11
这也很有帮助.
SELECT YEAR(0), MONTH(0), DAY(0);
Run Code Online (Sandbox Code Playgroud)
要么
SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());
Run Code Online (Sandbox Code Playgroud)
要么
SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);
Run Code Online (Sandbox Code Playgroud)
小智 10
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
Run Code Online (Sandbox Code Playgroud)
一些数据库例如MS ACCESS或RODBC可能不支持这些SQL SERVER功能,但对于任何具有该FORMAT功能的数据库,您可以简单地执行以下操作:
SELECT FORMAT(<your-date-field>,"YYYY-MM") AS year-date FROM <your-table>
Run Code Online (Sandbox Code Playgroud)
select CONCAT(MONTH(GETDATE()),'.',YEAR(GETDATE()))
Output: **5.2020**
select CONCAT(DATENAME(MONTH , GETDATE()),'.',YEAR(GETDATE()))
Output: **May.2020**
Run Code Online (Sandbox Code Playgroud)
我以两种方式解释你的问题.
a)您只需要分别使用月份和年份,在这种情况下,这就是答案
select
[YEAR] = YEAR(getdate())
,[YEAR] = DATEPART(YY,getdate())
, [MONTH] = month(getdate())
,[MONTH] = DATEPART(mm,getdate())
,[MONTH NAME] = DATENAME(mm, getdate())
Run Code Online (Sandbox Code Playgroud)
b)
您希望以给定日期显示,'2009-11-24 09:01:55.483'以MONTH.YEAR格式显示.所以输出应该像11.2009这种情况一样.
如果应该是这种情况那么试试这个(除其他选择之外)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
Run Code Online (Sandbox Code Playgroud)
CONCAT (datepart (yy,DATE), FORMAT (DATE,'MM'))
Run Code Online (Sandbox Code Playgroud)
如果您想要六位数的结果,则为您提供例如 201601
对于 MySQL,这非常有效:
DATE_FORMAT(<your-date>, '%Y-%m %M')
Run Code Online (Sandbox Code Playgroud)
它进入了SELECT声明。这是输出:
2014-03 March
Run Code Online (Sandbox Code Playgroud)
有关 的更多信息DATE_FORMAT,请查看文档:
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
| 归档时间: |
|
| 查看次数: |
913548 次 |
| 最近记录: |