从具有现有日期的SQL表中检索的第一天

时间:2015-02-13 19:10:22

标签: sql database ms-access oracle-sqldeveloper

我有一个数据库收集名为PARTS的数据,一列名为TM_DLVRYTM_DLVRY存储以此格式投放内容的所有日期:MM/DD/YYYY。我需要在每个月的第一天检索交货,因为我正在制作图表。

我尝试了以下内容:

SELECT TM_DLVRY
FROM PARTS
WHERE DATEFROMPARTS(Year(TM_DLVRY), Month(TM_DLVRY), 1) ;

我读到了我能找到的与此类似的所有其他问题,但没有一个问题让我得到了我想要的东西。

我不习惯在SQL Developer中编写SQL,所有这些都来自MS Access。之前,在MS Access中,我可以使用DateSerial(,, 1)来实现这一点,但现在我必须为SQL Developer重写所有内容,而且我的启动速度很慢。建议?

2 个答案:

答案 0 :(得分:0)

SELECT TM_DLVRY
FROM PARTS
WHERE TM_DLVRY.Day=1;

SELECT TM_DLVRY
FROM PARTS
WHERE EXTRACT(DAY FROM TM_DLVRY)=1;

这是你想要的吗? SQL中的WHERE应该是某种等价语句。

答案 1 :(得分:0)

如果要将TM_DLVRY转换为该月的第一天,则需要将DATEFROMPARTS移动到select语句中。但实际上你根本不需要它。

您也可以在该声明中进行一些数学/计数,例如尝试:

SELECT to_char(TM_DLVRY,'yyyy') as Year, to_char(TM_DLVRY,'mm') as month, COUNT(TM_DLVRY) as monthly count
FROM PARTS
GROUP BY to_char(TM_DLVRY,'yyyy'), to_char(TM_DLVRY,'mm');