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

时间:2012-11-19 14:06:02

标签: sql oracle toad peoplesoft

我正在尝试创建一个只从选定日期获取年份的查询。即select ASOFDATE from PSASOFDATE;会返回11/15/2012,但我只想2012。我怎么才能得到这一年?我知道可以使用YEAR函数,但我不确定如何。

5 个答案:

答案 0 :(得分:24)

这对我有用:

SELECT EXTRACT(YEAR FROM ASOFDATE) FROM PSASOFDATE;

答案 1 :(得分:17)

这个怎么样?

SELECT TO_CHAR(ASOFDATE, 'YYYY') FROM PSASOFDATE

答案 2 :(得分:3)

只需将columnName作为YEAR

的参数传递
SELECT YEAR(ASOFDATE) from PSASOFDATE;

另一种方法是使用DATE_FORMAT

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

更新1

我认为值为varchar,格式为MM / dd / YYYY,就是这种情况,

SELECT YEAR(STR_TO_DATE('11/15/2012', '%m/%d/%Y'));
如果所有查询都失败,

最后一次调查

使用SUBSTRING

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

答案 3 :(得分:0)

CurrentUserProperties currentUser = (CurrentUserProperties)_currentUser.GetCurrentUser(); var userId = currentUser.Id; var username = currentUser.Username; var forename = currentUser.Forename; var surname = currentUser.Surname;

答案 4 :(得分:-2)

SELECT YEAR(ASOFDATE) FROM PASOFDATE

Editted: 在任何情况下,如果您的日期是一个字符串,让我们将其转换为正确的日期格式。并选择年份。

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

由于您正在尝试Toad,可以查看以下代码:

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

Reference: