【问题标题】:Write a SQL Query to find year from date编写一个 SQL 查询以查找从日期开始的年份
【发布时间】:2014-02-27 14:13:58
【问题描述】:

首先,我尝试以不同的格式执行此查询。但是,我还没有得到任何解决方案。所以,我想用特定的方法和不同的方法来解决这个疑问。我想要这张表的确切解。

编写一个 SQL 查询从日期开始查找年份。

SELECT YEAR(GETDATE()) as "Year";

   o_id         no.order          o_date         amount 
    --------------------------------------------------
    2             6                1-2-11         120
    3             7                2-2-11         130
    5             5                3-2-11         100
    6             1                4-2-11         50

注意:the source getting from

【问题讨论】:

  • @Bart van Nierop,感谢您的回复。但是,我想要解决方案。
  • 您能解释一下输入数据是什么,想要的输出到底是什么?
  • “感谢您的回复,但我想要解决方案”。如果我理解正确,这意味着“给我准备好解决方案,让我免于做一些研究的痛苦”。这不是 StackOverflow 的工作方式!你必须表明你已经做出了一些努力来帮助自己。请阅读this article
  • @Barranka,为一条“有用的评论”投票。你说得对,我很清楚。我已经尝试并得到了解决方案(SELECT YEAR(GETDATE()) as "Year";),但我只想要不同的和多样化的解决方案。无论如何感谢 cmets。

标签: mysql sql sql-server


【解决方案1】:
SELECT YEAR(GETDATE());

来源:Documentation

或者

SELECT DATE_FORMAT(GETDATE(), '%Y');

来源:Documentation

例子:

SELECT  o_id, amount, YEAR(o_date) as year
FROM your_table

【讨论】:

  • 我在哪里可以提供意见。
  • 你可以试试这个:- SELECT DATE_FORMAT(inputdate, '%Y');还要检查您的日期格式
  • 亲爱的匿名投票者,请告诉我你为什么投反对票,以便我编辑答案。
【解决方案2】:
select YEAR(STR_TO_DATE('1-2-11','%d-%m-%Y')) year;

【讨论】:

  • 添加到您的答案中,如果存储的日期是dd-mm-yy 格式,那么...。 +1 虽然。
【解决方案3】:

巴特已经指出了解决方案...手册有一行:

mysql> SELECT YEAR('1987-01-01');
        -> 1987

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2012-05-15
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2011-08-22
    相关资源
    最近更新 更多