如何创建View一年中的所有日子.view应该填写从JAN-01到Dec-31的日期.我怎样才能在Oracle中执行此操作?
如果当前年份为365天,则view应该有365行日期.如果当年有366天,view应该有366行日期.我希望view有一个类型的列DATE.
我有一个列中包含日期以及表中的其他列.我希望能够:
显示与上一年的9月1日到当年7月30日的日期相匹配的所有行.
我知道有些事情需要做,只是不确定日期的具体语法..
SELECT * FROM xx
WHERE ASM_DATE BETWEEN TRUNC(SYSDATE-1,'YY') AND TRUNC(SYSDATE,'YY');
Run Code Online (Sandbox Code Playgroud)
这就是我到目前为止......
我知道我可以使用SYSDATE和'YYYY'获取当前年份,然后在前一年做-1,我不确定如何指定除此之外的月份.任何帮助都会很棒.
当我使用DATEADD运行查询时,似乎数据库无法识别此功能.当我刚跑的时候我也会select DATEADD(Month, -3, GETDATE()):
Error code -1, SQL state 42X01: Syntax error: Encountered "<EOF>" at line 1, column 36.
Run Code Online (Sandbox Code Playgroud)
你可以看到我从hsqldb-2.2.9添加了JAR文件

我在这里错过了什么?
我有 emp 表。考勤表:
emp_No Absent_Date
-------------------
111 01/03/2012
111 05/05/2012
222 13/02/2012
222 01/03/2012
222 02/03/2012
222 29/04/2012
222 09/09/2012
333 15/05/2012
333 18/09/2012
333 19/09/2012
Run Code Online (Sandbox Code Playgroud)
我需要返回如下所示的行:
emp_No Absent_Date
-------------------
222 13/02/2012
222 01/03/2012
222 02/03/2012
222 29/04/2012
Run Code Online (Sandbox Code Playgroud)
因为只有连续 3 个月缺席的 emp 没有 222。
我有两次 - 例如 - 当前时间 - 08:24和日期是2013年1月2日以dd/mm/yyyy格式,我有另一次在13:46,日期是2012年12月31日.那么,我如何使用PHP计算2小时之间的差异.(即42.63小时)提前致谢.
在我的数据库表中,我有一个日期字段(varchar字段以yy-mm-dd格式保存日期),现在我想选择两周前的记录.我该怎么做 ?
我正在寻找获得“明天”的方法从接收到日期的函数返回”和“后天”:
当前日期:
《2015/04/24 18:15:00》
未来的日期:
“2015/04/25 02:40:00”
该函数应在此处返回“明天”。我尝试查找一些函数,但它们都返回 0 而不是 1。
function days_between(date1, date2) {
// The number of milliseconds in one day
var ONE_DAY = 1000 * 60 * 60 * 24
// Convert both dates to milliseconds
var date1_ms = date1.getTime()
var date2_ms = date2.getTime()
// Calculate the difference in milliseconds
var difference_ms = Math.abs(date1_ms - date2_ms)
// Convert back to days and return
return Math.round(difference_ms/ONE_DAY)
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我们有一台24x7全天候运行的机器.每天我都会报告每小时生产的件数.在我们的例子中,一个工作日意味着'2015-06-16 06:00:00'到'2015-06-17 06:00:00'.
这是我的代码:
select date_trunc('hour', t_el_eventlog.eventtime at time zone 'CET') as hours,
count (distinct t_el_eventlog.serialnumber) as count
from t_el_eventlog
where eventtime at time zone 'CET' between '2015-06-16 06:00:00'
and '2015-06-17 06:00:00'
and sourceid = '44'
group by hours
order by hours asc
Run Code Online (Sandbox Code Playgroud)
我的Postgres版本:"PostgreSQL 9.4.1,由Visual C++编译构建1800,32位"
我正在处理的两列数据类型:
eventtime timestamp without time zone
sourceid integer NOT NULL
Run Code Online (Sandbox Code Playgroud)时区是"欧洲/柏林".
通过上面的查询,我得到了我想要的信息,但我必须每天更改日期.是否可以将该now()功能用作我的情况的默认值,这样我就不必每天手动更改日期?
我正在尝试使用以下格式为每个人打印年龄:
例如:19年,8个月,13天.
我已经google了很多,我注意到有一个特定的函数来计算日期之间的差异DATEDIFF.
但是这个功能不存在SQL*Plus,所以我继续尝试使用MONTHS_BETWEEN()和一些运算符.
我的尝试:
SELECT name , ' ' ||
FLOOR(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth))/12)||' years ' ||
FLOOR(MOD(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth)),12)) || ' months ' ||
FLOOR(MOD(MOD(MONTHS_BETWEEN(to_date(SYSDATE),to_date(date_of_birth)),12),4))|| ' days ' AS "Age"
FROM persons;
Run Code Online (Sandbox Code Playgroud)
我的问题依赖于获得日子.我不知道如何计算天数,使用此功能('尝试除以4或30); 我认为我的逻辑很糟糕,但我无法弄明白,任何想法?
我必须select从Oracle 11g数据库中获取一些数据,但我似乎无法弄清楚为什么后续select查询失败:
SELECT
INFO_ID,
INFO_DETAIL,
IMPORTANT_FLG,
DELETE_FLG,
CREATE_TIME,
DISPLAY_ORDER
FROM TABLE_NAME
WHERE TO_DATE(TO_CHAR(CREATE_TIME, 'YYYY/MM/DD'), 'YYYY/MM/DD')
BETWEEN TO_DATE(TO_CHAR(:fromDate, 'YYYY/MM/DD'), 'YYYY/MM/DD') AND TO_DATE(TO_CHAR(:toDate, 'YYYY/MM/DD'), 'YYYY/MM/DD')
ORDER BY IMPORTANT_FLG DESC NULLS LAST , DISPLAY_ORDER ASC NULLS LAST, CREATE_TIME DESC, INFO_ID ASC
Run Code Online (Sandbox Code Playgroud)
查询失败,并显示以下错误消息:
ORA-01481: invalid number format model
01481. 00000 - "invalid number format model"
*Cause: The user is attempting to either convert a number to a string
via TO_CHAR or a string to a number via TO_NUMBER …Run Code Online (Sandbox Code Playgroud) date-arithmetic ×10
sql ×6
oracle ×4
datetime ×2
oracle11g ×2
date ×1
dateadd ×1
derby ×1
javascript ×1
mysql ×1
php ×1
plsql ×1
postgresql ×1
select ×1
sql-server ×1
time ×1
timezone ×1