【问题标题】:Extract month and day from a field in sql从sql中的字段中提取月份和日期
【发布时间】:2014-12-10 22:39:09
【问题描述】:

如何从具有“2014-01-12”(日期时间)格式的日期的列中选择“MMDD”格式的月份和日期?

【问题讨论】:

  • 第一个错误是将日期存储为字符数据类型,而不是使用本机日期/日期时间类型。在那之后,就没有好事发生了。
  • 请给我们更多信息。您的字段是日期时间字段吗?
  • 试试SELECT REPLACE(CONVERT(VARCHAR(5), CAST(DateColumn AS DATE), 1), '/', '')
  • 抱歉,我已更改为日期时间
  • 如果是 Date 数据类型,您的值将类似于 2014-11-01 而不是 '11/01/2014

标签: sql sql-server


【解决方案1】:

如果您提交的是日期或日期时间,我会使用函数DATEPART

例如,获取当前年份:

DATEPART(year, GETDATE())

查看完整文档的 msdn 页面。

如果您的字段是文本,请使用CONVERT 将您的字段转换为 DATE,然后使用第一种方法将转换后的日期作为您的值。

例如:

DATEPART(year, CONVERT(DATE, '11/1/2014'))

完整的复制/粘贴示例

DECLARE @DateVal VARCHAR(10) = '11/01/2014'
DECLARE @Month VARCHAR(2) = CAST(DATEPART(MONTH, CONVERT(DATE, @DateVal)) AS VARCHAR),
        @Day VARCHAR(2) = CAST(DATEPART(DAY, CONVERT(DATE, @DateVal)) AS VARCHAR)
PRINT REPLICATE('0', 2 - LEN(@Month)) + @Month + REPLICATE('0', 2 - LEN(@Day)) + @Day

【讨论】:

  • 对不起。我没有完成我的回答。稍后我会发布完整的代码。
猜你喜欢
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2019-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多