标签: date-arithmetic

ORA-01843"无效月份"和ORA-01861"文字与格式字符串不匹配"

SQL> select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dua
l;
select to_timestamp('2010-12-14:09:56:53') - to_timestamp('2010-12-14:09:56:46') from dual
                    *
ERROR at line 1:
ORA-01843: not a valid month


SQL> select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual;
select to_date('2010-12-14:09:56:53') - to_date('2010-12-14:09:56:46') from dual
               *
ERROR at line 1:
ORA-01861: literal does not match format string
Run Code Online (Sandbox Code Playgroud)

做正确的方法是什么?

2010-12-14:09:56:53
minus
2010-12-14:09:56:46
Run Code Online (Sandbox Code Playgroud)

在Oracle SQL中?

sql database oracle date-arithmetic

3
推荐指数
1
解决办法
2万
查看次数

Oracle Time Comparisons

Oracle(10g)在这里进行了适当的TIME比较,还是需要转换为十进制时间然后进行比较?例如,

IF (SELECT TO_CHAR(sysdate,'HH24:MI:SS') from dual) <= '15:00'
THEN (...)
Run Code Online (Sandbox Code Playgroud)

谢谢.

sql oracle date-arithmetic to-char

3
推荐指数
1
解决办法
2万
查看次数

计算后台工作人员OnProgressChanged事件的剩余总时间和总时间

我有一个后台工作人员报告计算的进度.它返回它在ProgressChangedEventArgs中处理的当前行号.我可以从那里确定做的百分比

(int) (100 * (double)e.ProgressPercentage / csTextLines) 
Run Code Online (Sandbox Code Playgroud)

其中csTextLines是我正在处理的行数.我遇到的麻烦是我想要得到总估计时间和剩余时间.我看到后台工作程序中没有任何内容可以帮助我,所以我想它必须使用DateTime计算完成.这是我到目前为止尝试获得TotalEstTime和TimeLeft的方法

  • TimeLeft = TotalEstTime - TimeSoFar;
  • TotalEstTime = AvgTimeForEachLine*#OfLines;

哪里

  • TimeSoFar = DateTime.Now - m_startTime;
  • AvgTimeForEachLine =(TimeFromLastLine + TotalTimeForAllLines)/ #OfLines;

哪里

  • TimeFromLastLine = DateTime.Now - LastRecordedTime;
  • TotalTimeForAllLines + = TimeFromLastLine;

所以,如果我们把它变成代码,我到目前为止

// This event handler updates the progress. 
    private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        TimeSpan difInCalls = DateTime.Now.Subtract(m_LastProgressCall);
        m_LastProgressCall = DateTime.Now;
        m_totalDif = m_totalDif.Add(difInCalls);
        TimeSpan avgDif = new TimeSpan(0, 0, 0, 0, ((int)m_totalDif.TotalMilliseconds / m_csNumLines));
        double totalTime = m_csNumLines * avgDif.TotalSeconds;
        double …
Run Code Online (Sandbox Code Playgroud)

c# datetime date-arithmetic winforms

3
推荐指数
1
解决办法
3555
查看次数

Oracle日期计算trunc(sysdate)

我需要根据Oracle上的数据库对查询进行限定,以获得基于特定日期范围的报告

第一个查询

下午5点至7点(昨天下午5点至今天上午7点)

第二个查询

上午7点至下午5点(昨天下午5点,今天上午7点)

我该怎么办?我需要知道Oracle语法来指定那些日期标准

提前致谢

oracle datetime truncate date-arithmetic

3
推荐指数
1
解决办法
2万
查看次数

SQL检查DATE两次之间的任何一天

我有一个事务表,我的问题是跟踪transactionDateTime列.使用SQL,我似乎无法获取DATETIMESTAMP格式化,以便任何插入的数据必须在任何给定的一天上午8点到晚上10点之间:

    CREATE TABLE Transaction_T
      (transactionID          NUMBER(8,0)              ,
       employeeID             NUMBER(10,0)      NOT NULL,
       customerID             NUMBER(6,0)       NOT NULL,
       transactionDate        VARCHAR2(9)       NOT NULL,
       transactionPayment     VARCHAR2(10) check(transactionPayment IN('cash','credit','debit','ebt')),
       transactionType        VARCHAR2(10) check(transactionType IN('void','return','sale')),
       transactionDateTime    TIMESTAMP check(transactionDateTime < '% 22:00:00' AND transactionDateTime > '% 08:00:00') NOT NULL,
CONSTRAINT TransactionPK PRIMARY KEY (transactionID),
CONSTRAINT TransactionFK1 FOREIGN KEY (employeeID) REFERENCES Employee_T(employeeID),
CONSTRAINT TranscationFK2 FOREIGN KEY (customerID) REFERENCES Customer_T(customerID));
Run Code Online (Sandbox Code Playgroud)

上面的表是创建的,但是在尝试插入正确的时候Date(Time),我会收到1到12小时之间的格式错误,或者当时间低于12时没有有效月份.我使用了Oracle文档格式但仍然没有运气:

INSERT INTO 
transaction_T(transactionID, employeeID, customerID, transactionDate, transactionPayment, transactionType, transactionDateTime) 
VALUES(00000001, 0001, 000004, …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql date-arithmetic

3
推荐指数
1
解决办法
1784
查看次数

Python如何计算2个日期之间的天数?

我在python中以干净简单的方式执行此操作时遇到了麻烦.
我想做的是拥有一段代码来计算两个日期之间的天数.例如,今天是12月22日,我想知道在15日之前我有多少天.有55天的差异
(我采用这个例子,因为它使两个不同的年份连续多个月)
我所做的非常混乱,并且没有工作一半的时间所以我有点尴尬地展示它.
任何帮助表示赞赏.
提前致谢

python date date-arithmetic python-3.x

3
推荐指数
1
解决办法
1万
查看次数

ORA-00932:不一致的数据类型:预计INTERVAL DAY TO SECOND得到CHAR

SELECT COALESCE (
      (to_timestamp( '2014-09-22 16:00:00','yyyy/mm/dd HH24:MI:SS')
        -   ('2014-09-22   09:00:00' ,'yyyy/mm/dd HH24:MI:SS'))  
        - (to_timestamp( '2014-09-22 16:00:00','yyyy/mm/dd HH24:MI:SS')  
        - to_timestamp('2014-09-22 09:00:00.' ,'yyyy/mm/dd HH24:MI:SS')) 
       , '00:00') 
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

这是在postgres中工作,但它在oracle中不起作用.

oracle timestamp date-arithmetic

3
推荐指数
1
解决办法
2万
查看次数

上一季度末/上一季度的最后一天

使用lubridate,如何计算给定日期的上一季度的最后一天?以下公式似乎不适用于2014年11月3日(其他日期有效)

library(lubridate)
date = as.POSIXct("2014-11-03")
date - days(day(date)) - months(month(date) %% 3 - 1)
# NA
Run Code Online (Sandbox Code Playgroud)

足够有趣的是,更改订单可以:

date - months(month(date) %% 3 - 1) - days(day(date))
# "2014-09-30 UTC"
Run Code Online (Sandbox Code Playgroud)

r date-arithmetic lubridate

3
推荐指数
1
解决办法
2556
查看次数

Oracle to_date SQL格式问题,

我将时间戳字段格式化为'DD/MM/YYYY'格式以获取该日期的所有处理记录.

select count(*) from task_log where to_date (event_dt,'DD/MM/YYYY')= to_date('19/05/2015','DD/MM/YYYY');
Run Code Online (Sandbox Code Playgroud)

上面的查询返回0计数.

select count(*) from task_log where to_date (event_dt,'DD/MM/YYYY')= to_date('19/05/0015','DD/MM/YYYY');
Run Code Online (Sandbox Code Playgroud)

上面的查询返回29个计数.

如果我跑:

select event_dt from task_log where to_date (event_dt,'DD/MM/YYYY')= to_date('19/05/0015','DD/MM/YYYY');
EVENT_DT
5/19/2015 9:35:23 AM
5/19/2015 9:35:23 AM
5/19/2015 9:37:22 AM
5/19/2015 9:37:23 AM
5/19/2015 9:37:32 AM
5/19/2015 9:37:53 AM
Run Code Online (Sandbox Code Playgroud)

等等...

select to_date (event_dt,'DD/MM/YYYY') as to_date_Farmatted from task_log
TO_DATE_FARMATTED
5/19/0015
5/19/0015
5/19/0015
5/19/0015
5/19/0015
Run Code Online (Sandbox Code Playgroud)

to_date格式是格式化为0015年

如何避免将年份格式化为0015格式?我需要2015年的格式.请帮我解决这个问题.

sql oracle date-arithmetic

3
推荐指数
1
解决办法
2096
查看次数

如何在SQL中排除周末?

SLA_DateOrders表中有一个日期列。

SLA_Date应该排除周末(星期六和星期日)。工作日的数据应单独显示。

如何在SQL中做到这一点?

sql oracle datetime date-arithmetic

3
推荐指数
1
解决办法
7245
查看次数