我需要使用Oracle解码函数比较两个日期,看看是否有一个日期less than or equal.
我找到了这篇文章 - http://www.techonthenet.com/oracle/functions/decode.php
如果date1> date2,下面的解码函数将返回date2的状态(在底部):
decode((date1 - date2) - abs(date1 - date2), 0, date2, date1)
Run Code Online (Sandbox Code Playgroud)
如果date1> = date2,这不会返回date2吗?
或者只是date1> date2?
有更简单的解决方案吗?
我有一个shell脚本,每晚运行以备份我的EC2站点数据库和html到S3,当它备份文件夹时,它会将日期附加到它以便于查看.但是我希望它能够在3天之前删除相关的备份文件夹.我如何进行计算以获得3天前的日期?
#!/bin/bash
DATE=`date +%m%d%Y`
s3cmd put -r /var/lib/mysql/mydb/ s3://mybucket/mydb-$DATE/
s3cmd put -r /home/ec2-user/public_html/ s3://mybucket/public_html-$DATE/
s3cmd del -r s3://mybucket/mydb-(date 3 days ago)
Run Code Online (Sandbox Code Playgroud) 我想使用Date和Calendar类来计算java中两个日期/时间之间的差异.我的格式是"2012-01-24 12:30:00 PM".
我已经实现了我自己的方法,并且谷歌它与其他人合作,但没有得到正确的提示来处理AM和PM值.
只要时间有12(上午/下午),日期/时间差就会受到影响.例如,如果我有日期/时间"2012-01-24 12:30:00 PM"和"2012-01-24 02:30:00 PM",则显示差异为10小时.
考虑到此链接上的代码,如何修改它以处理AM和PM.
要将字符串日期转换为日期,请使用以下代码:
String sessionTimeStart = "2012-01-24 12:30:00 PM";
String sessionTimerEndOrCurrent = "2012-01-24 02:30:00 PM";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
Date d1 = null;
Date d0 = null;
try {
d1 = format.parse(sessionTimeStart);
d0 = format.parse(sessionTimerEndOrCurrent);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我有一个" DATE"类型的列,我想在它上面运行一个查询,将它与sysdate进行比较.
但我得到了以下错误,有人可以让我知道我在这里失踪了吗?
SQL> select distinct file_name as r
from table_1
where view_day >= TO_DATE(SYSDATE-10, 'YYYY/MM/DD');
ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected
Run Code Online (Sandbox Code Playgroud) 我想在当前日期之后获得下周一的日期.
因此,如果今天的日期是2013-08-09(星期五),那么我想得到2013-08-12的日期.
我怎样才能做到这一点?
我有一个PostgreSQL数据库,我试图总结一下收银机的收入.收银机可以具有状态ACTIVE或INACTIVE,但我只想总结在给定时间段内处于ACTIVE状态时创建的收益.
我有两张桌子; 一个标志着收入,另一个标志着收银机状态:
CREATE TABLE counters
(
id bigserial NOT NULL,
"timestamp" timestamp with time zone,
total_revenue bigint,
id_of_machine character varying(50),
CONSTRAINT counters_pkey PRIMARY KEY (id)
)
CREATE TABLE machine_lifecycle_events
(
id bigserial NOT NULL,
event_type character varying(50),
"timestamp" timestamp with time zone,
id_of_affected_machine character varying(50),
CONSTRAINT machine_lifecycle_events_pkey PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)
每1分钟添加一个计数器条目,而total_revenue仅增加.每次机器状态发生变化时,都会添加machine_lifecycle_events条目.
我添加了一个说明问题的图像.应该总结蓝色时期的收入.

我创建了一个查询,它可以在给定的瞬间为我提供总收入:
SELECT total_revenue
FROM counters
WHERE timestamp < '2014-03-05 11:00:00'
AND id_of_machine='1'
ORDER BY
timestamp desc
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?
示例数据: …
sql postgresql aggregate-functions date-arithmetic window-functions
多年来,我对一天结束时遇到了不同的解释. 但是在比较日期和时间间隔时,表示它的正确方法是什么?
我发现有些人似乎更喜欢23:59:59,而其他人确实喜欢00:00:00.
在StackOverflow上,我甚至发现了一些与24:00:00的使用和显示相关的问题实例,但是这个问题的范围更侧重于确定如何分割两天.
换句话说,我们感兴趣的是确定一天结束的位置以及下一个开始的位置的问题.这似乎是许多应用中的常见问题,甚至需要最基本的时间间隔比较或计算.
为了澄清上述解释,以下是代表2014年1月1 日的三个不同解释的三个例子:
2014-01-01 00:00:00 - 2014-01-01 23:59:592014-01-01 00:00:00 - 2014-01-02 00:00:002014-01-01 00:00:00 - 2014-01-01 24:00:00虽然我觉得准午夜解释是最直观的解释,但它似乎也需要相当数量的样板来正确指出时间.此外,当一天中的最后一秒没有得到正确处理时,存在遇到边缘情况的风险,或者在扫描大量间隔时间以便在这些间隙周围进行测试时影响性能的风险.
同样,军事午夜解释似乎也需要一些样板来设置该分裂点的双重表示.没有太多的想法,我无法想到使用这种方法的许多复杂情况.
最后,午夜的尖锐解释似乎是最稳定的解释.不像午夜准,它不需要样板设定时间,它自然地与运营商的行为<,<=,>和>=.
值得注意的是,PHP语言已经解释2014-01-01 24:00:00为2014-01-02 00:00:00,这具有将日期转换为午夜尖锐解释的效果.
在典型的FLOSS图书馆或标准中是否有明显的先例可以证明使用一种解释而不是另一种解释?
如何确定Windows批处理文件中的(ISO 8601)周数?
不幸的是WMIC PATH WIN32_LOCALTIME GET /FORMAT:LIST只有WeekInMonth ...
我在使用R中的as.Date函数时遇到了一些麻烦.我有一个日期向量,我正在从一个.csv文件中读取,它作为整数或字符的因素进入(取决于我的方式)读入文件,但这似乎与问题没有任何关系),格式为%m/%d/%Y.
我将逐行浏览文件,拉出日期字段并尝试将其转换为使用以下代码在其他地方使用:
tmpDtm<-as.Date(as.character(tempDF$myDate), "%m/%d/%Y")
Run Code Online (Sandbox Code Playgroud)
这似乎给了我想要的东西,例如,如果我这样做到12/30/2014的起始值,我得到"2014-12-30"返回的值.但是,如果我使用了这个值typeof(),R告诉我它的数据类型是'double'.另外,如果我尝试将其绑定到其他值并使用c()或将其存储在数据框中,或者cbind()在数据框中,它最终存储为16434,这看起来像是日期的某种不同的内部存储值.我很确定这也是它的原因,因为如果我尝试再次使用as.Date()它转换该值,它会抛出一个错误请求原点.
那么,有两个问题:这是否符合预期?如果是这样,是否有更合适的方式来转换日期,以便我实际上最终得到一个日期类型的对象?
谢谢
我有一个记录跨越多年的数据框:
WarName | StartDate | EndDate
---------------------------------------------
'fakewar1' 01-01-1990 02-02-1995
'examplewar' 05-01-1990 03-07-1998
(...)
'examplewar2' 05-07-1999 06-09-2002
Run Code Online (Sandbox Code Playgroud)
我正在尝试将此数据框转换为每年总战争的摘要概述,例如:
Year | Number_of_wars
----------------------------
1989 0
1990 2
1991 2
1992 3
1994 2
Run Code Online (Sandbox Code Playgroud)
通常我会使用某种方式df.groupby('year').count()来获得按年计算的总战争,但由于我目前正在使用范围而不是设定日期,因此这种做法无效.
我目前正在编写一个生成年份列表的函数,然后列表中的每一年检查数据框中的每一行并运行一个函数来检查年份是否在该行的日期范围内(如果该行返回True)是这样的).
years = range(1816, 2006)
year_dict = {}
for year in years:
for index, row in df.iterrows():
range = year_in_range(year, row)
if range = True:
year_dict[year] = year_dict.get(year, 0) + 1
Run Code Online (Sandbox Code Playgroud)
这有效,但似乎也非常复杂.所以我想知道,我错过了什么?解决这个问题的规范"熊猫方式"是什么?
date-arithmetic ×10
date ×4
sql ×3
oracle ×2
bash ×1
batch-file ×1
calendar ×1
cmd ×1
cocoa ×1
cocoa-touch ×1
decode ×1
java ×1
nsdate ×1
pandas ×1
postgresql ×1
python ×1
r ×1
shell ×1
summarize ×1
week-number ×1