简体   繁体   English

用于从日期中提取年份的 SQL 查询

[英]SQL query for extracting year from a date

I am trying to create a query that gets only the year from selected dates.我正在尝试创建一个仅从选定日期获取年份的查询。 Ie select ASOFDATE from PSASOFDATE;select ASOFDATE from PSASOFDATE; returns 11/15/2012 , but I want only 2012 .返回11/15/2012 ,但我只想要2012 How can I get only the year?我怎么能只得到年份? I know the YEAR function can be used, but I'm not sure how.我知道可以使用YEAR函数,但我不确定如何使用。

这对我有用:

SELECT EXTRACT(YEAR FROM ASOFDATE) FROM PSASOFDATE;

这个怎么样?

SELECT TO_CHAR(ASOFDATE, 'YYYY') FROM PSASOFDATE

just pass the columnName as parameter of YEAR只需将 columnName 作为YEAR参数传递

SELECT YEAR(ASOFDATE) from PSASOFDATE;

another is to use DATE_FORMAT另一个是使用DATE_FORMAT

SELECT DATE_FORMAT(ASOFDATE, '%Y') from PSASOFDATE;

UPDATE 1更新 1

I bet the value is varchar with the format MM/dd/YYYY, it that's the case,我敢打赌该值是格式为 MM/dd/YYYY 的 varchar,就是这种情况,

SELECT YEAR(STR_TO_DATE('11/15/2012', '%m/%d/%Y'));

LAST RESORT if all the queries fail如果所有查询都失败,则为 LAST RESORT

use SUBSTRING使用子SUBSTRING

SELECT SUBSTRING('11/15/2012', 7, 4)

SELECT date_column_name FROM table_name WHERE EXTRACT(YEAR FROM date_column_name) = 2020

Edit: due to post-tag 'oracle', the first two queries become irrelevant, leaving 3rd query for oracle.编辑:由于后标记'oracle',前两个查询变得无关紧要,留下第三个查询为oracle。

For MySQL:对于 MySQL:

SELECT YEAR(ASOFDATE) FROM PASOFDATE

Editted: In anycase if your date is a String, let's convert it into a proper date format.编辑:无论如何,如果您的日期是字符串,让我们将其转换为正确的日期格式。 And select the year out of it.并从中选择年份。

SELECT YEAR(STR_TO_DATE(ASOFDATE, '%d-%b-%Y')) FROM PSASOFDATE

Since you are trying Toad, can you check the following code:既然您正在尝试 Toad,您能否检查以下代码:

For Oracle:对于甲骨文:

SELECT EXTRACT (TO_DATE(YEAR, 'MM/DD/YY') FROM ASOFDATE) FROM PSASOFDATE;

Reference: 参考:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM