TO_DATE无法打印时间戳
我想从下面的SQLTO_DATE无法打印时间戳
select to_date('01/01/2011 12:00:00 AM','dd/mm/yyyy hh:mi:ss AM') from dual;
电流输出打印时间戳 - >1/1/2011
(不打印时间戳仅12点,如果min为12:01那正在打印。
但我需要输出为1/1/2011 12:00:00 AM
可以使用
select Convert(varchar,'01/01/2011 12:00:00 AM',113)
问题标记为Oracle,'TO_DATE'是Oracle语法。这是一个SQL Server解决方案。 –
控制格式的最佳方法是使用to_char
并明确指定所需的日期格式。
select to_char(to_date('01/01/2011 12:00:00 AM','dd/mm/yyyy hh:mi:ss AM'),'DD/MM/yyyy hh:mi:ss AM')
from dual;
TO_DATE
字符串转换为一个DATE
。 A DATE
以非人类可读的压缩二进制格式存储。 Oracle DATE
没有格式。所以当你让一个程序显示一个日期时,它必须将DATE
转换为一个字符串。如果您没有明确指定格式,请使用会话NLS_DATE_FORMAT
,SQL * Plus等工具将日期转换为字符串。其他应用程序可以选择不同的方式将日期转换为字符串 - 例如使用客户端的区域设置,或者允许用户配置格式。
如果要以特定格式返回代表DATE
的字符串,则需要使用明确的TO_CHAR
。像
SELECT to_char(some_date_column, 'dd/mm/yyyy hh:mi:ss AM')
FROM some_table
东西在特定的情况下,你贴出来,因为你必须在你的手作为一个字符串的字符串,你只是想选择它从双,而不是做一个TO_DATE
将其转换为一个日期然后TO_CHAR
将其转换回字符串。不过,我假设你在实际的表格中有一个实际的DATE
,你试图从中选择。
尼斯彻底的答案! – Peter
当你说你要打印它,你想打印它在哪里?这是在一个报告,一个网页,sqlplus? – Peter