sql - SQL如何在它不在键中时显示时间?
问题描述
ERD 和代码练习题如下。我遇到的问题是:
我不知道如何显示“如果股票尚未交易,则在最后交易日期显示 NULL。我试过
nvl(transaction_time, 'NULL')
但我认为不对。该练习要求提供股票最后交易的日期和时间,但外键
"transaction_time"
仅显示日期。我将如何访问 SQL 代码中的时间?我只是做一个默认时间吗SYSDATE?
我认为除了这两件事之外,我认为问题所要求的其他一切都是正确的。不过我可能是错的。提前致谢
对于在每个证券交易所上市的每只股票,显示交易所名称、股票代码以及该股票最后交易的日期和时间。按证券交易所名称、股票代码对输出进行排序。如果股票尚未交易,则在最后交易日期显示 NULL。
SELECT
stock_exchange.stock_ex_id,
stock_exchange.name stock_exchange_name,
stock_exchange.symbol,
trade.transaction_time
FROM stock_exchange
JOIN trade
ON trade.stock_ex_id = stock_exchange.stock_ex_id
ORDER BY stock_exchange.name, stock_exchange.symbol;
解决方案
使用外连接查找尚未交易的股票。Oracle DATE 数据类型包含一个时间元素,您只需更改日期格式即可显示时间元素:
SELECT stock_exchange.stock_ex_id,
stock_exchange.name stock_exchange_name,
stock_exchange.symbol,
to_char(max(trade.transaction_time), 'yyyy-mm-dd hh24:mi:ss') as last_traded_time
FROM stock_exchange
LEFT JOIN trade
ON trade.stock_ex_id = stock_exchange.stock_ex_id
group by stock_exchange.stock_ex_id,
stock_exchange.name,
stock_exchange.symbol
ORDER BY stock_exchange.name, stock_exchange.symbol;
推荐阅读
- r - 如何使用索引号将数据转换为矩阵
- firebase - 如何缓存firebase函数结果?
- symfony - 通配符子域的 Symfony 功能测试
- vue.js - 有没有办法在 vuex 商店中做异步功能
- python - Python 无法导入包,即使它是通过 pip 安装的
- r - 如何引用满足某些条件的另一个值,然后可以在计算中使用
- javascript - Typescript/Javascript:从字符串参数获取对象属性?
- linux - Inotifywait 在 while 循环中无法按预期工作
- javascript - 为什么数组没有改变?
- perl - Perl Mail::IMAPClient 电子邮件纪元时间的日期