oracle数据库的 to char 和to date 区别

记得有一次写报告的时候,数据的日期格式各不相同,有的是字符串形式,有的是直接时间戳。
我需要将其统一为“YYYY-MM-DD”格式,否则将与表格不匹配。
当时我使用to_char将sysdate转换为字符串。
格式已明确规定。
运行几次后发现有时会有空值。
经过检查,发现数据本身有一部分是空的。
唉,这个日期转换真是让人头疼。

等一下,还有一件事。
当时我想用to_date转换回用户输入错误的日期字符串,比如'2 004 -05 -07 1 3 :2 3 :4 4 ',但是结果总是报错。
然后我又想了想,发现我没有在第二个参数中添加连接器,它与用户填写的格式不匹配。
所以使用to_date时必须特别小心,格式必须完全一致。

不过话说回来,有时转换过程中格式参数填写错误,数据库错误信息也比较模糊。
你必须要有耐心,尝试每一种。
记得有一次我花了半个下午的时间,只是想解决to_char中‘MM’和‘mon’混淆的问题。
我盯着屏幕,眼睛几乎模糊了。

我突然想到,现在很多BI工具好像都带有这些转换函数,比直接用SQL写好用多了。
但有时您仍然需要回去为复杂的报告编写一些代码。
您认为是这样吗?

mysql中自定义函数to_char()如何写

上周 MySQL 没有 to_char 函数。
确实。
Oracle 很容易使用。
将日期或数字转换为 MySQL 中的字符串 您必须自己编写该函数。
例如,2 02 3 年 5 月 1 0 日 我想将日期转换为“2 02 3 -05 -1 0”格式。
你可以写一个函数。
或者您想将数字转换为具有千位的字符串。
它还需要定制。
我只是想到了别的事 将数值转换为具有格式的字符串 例如“1 ,2 3 4 .5 6 ” 这个自定义功能也是有很大问题的。
简而言之 这取决于您想切换到什么类型。
日期或数字。
然后编写相应的函数。
不要紧。