SQL 日期格式转换

哎哟,这SQL的日期格式转换,说起来简单,做起来可就头疼了。
2 02 2 年,我在某个项目里头就碰到了这个难题,那会儿我那时候也懵,想着怎么把“2 02 2 年1 2 月1 5 日”这么个格式,弄成“2 02 2 1 2 1 5 ”这么个干干净净的格式。

我当时就想到,咱们不是有REPLACE函数吗?这个函数,哎,就是专门用来替换字符串里的字符的。
我当时就那么一操作,REPLACE('2 02 2 年1 2 月1 5 日', '年', ''),嘿,这“年”字就没了。
然后我又来一招,REPLACE(上一步的结果, '月', ''),结果“月”也给干掉了。

问题是,这俩招儿只处理了“年”和“月”,对于“日”那是视而不见啊。
而且,它俩之间没有分隔符,这可不行。
我后来才反应过来,这方法可能有点偏激,它没有考虑到“日”的处理,也没有给月份和日期加个分隔符。

后来,我灵机一动,想到了一个改进方法。
我试着把“日”也给处理掉,REPLACE('2 02 2 年1 2 月1 5 日', '日', ''),这回“日”也没了。
这样一来,我再用REPLACE('2 02 2 年1 2 月1 5 日', '年', ''), REPLACE(上一步的结果, '月', ''),三个步骤下来,嘿,这日期格式就变成了“2 02 2 1 2 1 5 ”。

当然,这方法也是有风险的。
首先,你得保证所有日期字符串的格式都一样,不然这个转换可能就玩儿不转了。
其次,不同的数据库管理系统,这处理方式可能也就不一样。
我那时候在用的那个系统,它对字符串的操作还是挺给力的。

最后,我给自己提了个醒,这日期格式转换,还是得讲究方法。
对于复杂的转换或者数据完整性要求高的,我还是建议用数据库自带的日期处理函数。
这些函数,哎,更灵活,更能应对各种边缘情况。

MySQL日期格式转换 13位时间戳转YYYY-MM-DD的三种方案

直接说,把1 3 位毫秒级时间戳转成日期,三种方案都行。
方案一,用DATE_FORMAT和FROM_UNIXTIME,灵活;方案二,直接用DATE,简单;方案三,CAST或CONVERT,清晰。
关键是要注意数据类型,别溢出,时区对齐,别丢毫秒。
数据分析用时间戳效率高,方便。
你自己看哪种适合你。

sql日期格式转换

SQL日期格式转换简单,直接上命令:

年月日:SELECT CONVERT(varchar(1 00), GETDATE(), 2 3 ),2 02 3 年4 月5 日。

时分秒:SELECT CONVERT(varchar(1 00), GETDATE(), 8 ),1 4 :2 0:3 0。

年月日时分秒:SELECT CONVERT(varchar(1 00), GETDATE(), 2 0),2 02 3 -04 -05 1 4 :2 0:3 0。

日月年:SELECT CONVERT(varchar(1 00), GETDATE(), 1 05 ),5 /4 /2 02 3
年/月/日:SELECT CONVERT(varchar(1 00), GETDATE(), 1 1 1 ),2 02 3 /4 /5
直接用,不要绕。