【问题标题】:Retrieveing Day, Month and Year separately from Date与日期分开检索日、月和年
【发布时间】:2012-05-11 07:49:14
【问题描述】:

是否有一种实现的方法可以从 T-SQL 中的日期字段中分别检索日、月和年?我发现的一切都是为了让这个过程反过来,就我而言,我的意思是如果我有 2012-05-22,我希望有 3 种不同的方法来分别获得 2012、05 和 22 的结果。

提前致谢。

【问题讨论】:

  • 什么数据库和版本?你想要字符串“05”还是数字5?
  • @Mark Byers 我想要数字,如果这是问题的话,我在 MS SQL Server 2008 中。

标签: sql sql-server-2008 tsql date


【解决方案1】:

如果是SQL Server,可以使用DATEPART(MSDN:http://msdn.microsoft.com/en-us/library/ms174420.aspx

例子:

DECLARE @yourDate DATETIME
SET @yourDate = '2012-05-22'

SELECT DATEPART(DAY, @yourDate), 
       DATEPART(MONTH, @yourDate),
       DATEPART(YEAR, @yourDate)

【讨论】:

  • 谢谢,这正是我想要的!
  • 没问题!很高兴我能帮忙:)
【解决方案2】:

如果您使用的是 mssql。你可以这样做:

DECLARE @date DATETIME
SET @date=GETDATE()
SELECT
    YEAR(@date) AS Years,
    MONTH(@date) AS MONTHs,
    DAY(@date) AS Days

或者您可以使用datepart。像这样:

DECLARE @date DATETIME
SET @date=GETDATE()
SELECT
    DATEPART(YEAR,@date) AS Years,
    DATEPART(MONTH,@date) AS MONTHs,
    DATEPART(DAY,@date) AS Days

【讨论】:

    【解决方案3】:

    我相信您可以将 date_format(DATEFIELD %M) 设为月,将 date_format(DATEFIELD %b) 设为日。

    我在 Rails 应用程序中使用过类似的东西。

    http://www.w3schools.com/sql/func_date_format.asp

    【讨论】:

    • 问题的答案取决于 OP 使用的 RDBMS - 您提到的功能仅限 MySQL。
    • 啊,对不起。错误地认为它是 MySQL!
    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多