我无法在'mysql'数据库中使用'trunc(in oracle)'函数.我在我的'mysql'数据库中有一个名为dlb_cc_purchase的表和名为due_date的日期字段.数据显示在日期字段中,如20-11-2014 00:00:00(20-nov-2014).在oracle我们正在使用查询
select * from dlbcc_purchase where trunc(due_date) = '20-nov-2014'
Run Code Online (Sandbox Code Playgroud)
Oracle DB将获取截止日期为20-11-2014 00:00:00的行.如何在'mysql'中使用此功能?我知道这是一个基本问题,但是我试图用truncate,str_to_date很长时间来做这个...但是无法获取值.请帮忙.
我正在使用ODI将XML文件从Web服务加载到数据库中.模式文件(XSD)定义名为"share"的元素.这是oracle中的关键字.在对XML模型进行逆向工程时,ODI会将列名称设置为"SHARE".稍后在构建和执行应该将数据加载到数据库表中的映射时,ODI无法创建临时表,因为"SHARE"是oracle中的关键字.文档告诉我们,XML模式文件中的关键字将用下划线字符标记(即SELECT将重命名为SELECT_),但是很明显,关键字SHARE不是ODI使用的列表的一部分.
是否有机会扩展关键字列表或任何其他想法来解决此问题.我无法更改架构文件,因为它不在我的控制之下.
我试图在每次循环发生时创建2个随机数(0-4和0-10之间),但它总是给出相同的数字.如果我多次运行程序,它会给出不同的数字,但是while循环总是生成相同的2个数字.谢谢.
int random(int range){
int num;
srand(time(NULL));
num = rand() % range;
return num;
}
int main(){
int cnt = 0;
int i;
int j;
while (cnt <= 20) {
i = random(5);
j = random(10);
printf("%d\n",i);
printf("%d\n",j);
printf("\n");
cnt += 1;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我已经通过使用 rownum 功能阅读了大量有关 Oracle SQL 中最后 n 条记录的文章,但就我而言,它没有给我正确的行。
我的表中有 3 列:1)消息(varchar)、mes_date(日期)和 mes_time(varchar2)。
假设里面有 3 条记录:
Hello world | 20-OCT-14 | 23:50
World Hello | 21-OCT-14 | 02:32
Hello Hello | 20-OCT-14 | 23:52
Run Code Online (Sandbox Code Playgroud)
我想获取按日期和时间排序的最后 2 条记录(第一行是最旧的,第二行是最新的日期/时间)
我正在使用这个查询:
SELECT *
FROM (SELECT message
FROM messages
ORDER
BY MES_DATE, MES_TIME DESC
)
WHERE ROWNUM <= 2 ORDER BY ROWNUM DESC;
Run Code Online (Sandbox Code Playgroud)
我没有将第 3 行作为第一行和第二行 #2,而是将第 1 行作为第 1 行,然后将第 #3 行作为第二行
我应该怎么做才能让较旧的日期/时间排在最前面,然后是最新的?
有没有更好的方法以更好的方式重新启动oracle的以下查询,下面是查询
UPDATE ABC SET STATUS='CLEAN'
WHERE STATUS in ('RUNNING','HALT')
AND START_DATE BETWEEN to_date(to_char(sysdate-1 , 'MM/DD/YYYY'),'MM/DD/YYYY')
and to_date(to_char(sysdate-4 , 'MM/DD/YYYY'),'MM/DD/YYYY');
Run Code Online (Sandbox Code Playgroud)