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