从 SQL DATE 仅获取月份和年份

2022-01-31 00:00:00 sql tsql sql-server

我只需要从 SQL Server 的日期字段中访问 Month.Year.

I need to access only Month.Year from Date field in SQL Server.

推荐答案

除了已经给出的建议,我可以从您的问题中推断出另一种可能性:
- 你仍然希望结果是一个日期
- 但您想丢弃"日期、时间等
- 只留下年/月日期字段

As well as the suggestions given already, there is one other possiblity I can infer from your question:
- You still want the result to be a date
- But you want to 'discard' the Days, Hours, etc
- Leaving a year/month only date field

SELECT
   DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
   <your_table>

这会从基准日期 (0) 获取整月数,然后将它们添加到该基准日期.因此向下舍入到日期所在的月份.

This gets the number of whole months from a base date (0) and then adds them to that base date. Thus rounding Down to the month in which the date is in.

注意:在 SQL Server 2008 中,您仍会将 TIME 附加为 00:00:00.000这与完全删除"任何日期和时间符号并不完全相同.也将 DAY 设置为第一个.例如2009-10-01 00:00:00.000

NOTE: In SQL Server 2008, You will still have the TIME attached as 00:00:00.000 This is not exactly the same as "removing" any notation of day and time altogether. Also the DAY set to the first. e.g. 2009-10-01 00:00:00.000

相关文章