Day29 - 日期、转换函数

若你是使用 ORM ( Object Relational Mapping ) 来操作资料库的话,那麽在建立 Modal、写入资料之时,多半会有时间栏位来记录「建立时的日期」和「最近一次的日期」。虽说 SQL 也内建了不少日期相关的操作函数,但各家的写法多少仍存在差异,详情还是要以各家的开发文件为主。

日期函数

日期的格式除了生活中常用的 YYYY-MM-DD 外,还有 timestamp 格式。

CURRENT_DATE - 现在日期

不是每家 SQL 都可以使用,如 SQL_SERVER 没有内建这函数、Oracle, DB2 的写法略有差异。

CURRENT_DATE

CURRENT_TIMESTAMP - 现在日期和时刻

各家 SQL 都可以使用此语法,但用法上仍有存在些许差异。

CURRENT_TIMESTAMP

EXTRACT - 撷取日期元素

  • SQL_SERVER 没有内建此函数、Oracle, DB2 的写法略有差异
  • 回传值为「数值」
EXTRACT(日期元素 FROM 日期资料)
  • 日期元素有:YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

转换函数

分为「资料型别」的转换和「内容值」的转换

CAST - 型别转换

/*CAST(目标栏位或是目标值 AS 欲转换的型别)*/
/*Example*/
CAST('0015' AS INTEGER)

COALESCE - 将 NULL 替换成特定值

如果你的栏位中有可能会出现 NULL 的话,那麽 COALESCE 就是好帮手。它并不能帮你修改 NULL 栏位,但可以将读取到的 NULL 转成特定值。

  • 特定值的数量没有一定,执行时会由左到右回传第一个「不是 NULL」的值
COALESCE(data1, data2, data3......)

例如要在 Product 中将 info 为 NULL 的项目以 "null data" 的字串来回传:

SELECT id, name, COALESCE(info, 'null data') FROM Product;

Day29Result1


<<:  Day27 - Kubernetes plugin 范例

>>:  【Tailwind CSS 教学 - 14】透过 Tailwind 达到容器与内容分离

【Day29】综合练习:台铁即时时刻表(1/2)

本日小作品: https://codepen.io/linchinhsuan/pen/OJXVgdo...

29. 建立路由

课程练习 新建完整的路由,并提供导览进入大部分页面(进入页面仅需要文字,不必加入实际的页面) 使用 ...

【Day15】:STM32辗压Arduino的功能—TIM(下)

TIMER+NVIC中断 今天我们来使用Timer的中断功能吧! 设定与昨天大致相同,只是我们现在需...

selenium爬虫:爬取影片名称与连结

##事先准备 首先我们先引入这四个模组,同时这一篇文章也会简单地带大家认识这几个模组。 from s...

#30-用Tailwind&Gulp做个动态菜单网站(完赛!)

Yo! 因为用Gulp包其他页面,但最後一页临时改成用Tailwind, 在设定上卡了一下...一起...