有什么好的方法在 SQL 里面生成一段时间吗?

2018-12-12 14:38:57 +08:00
 CUMTProgrammer

比如我想生成一段 12 月 1 日至 12 月 4 日的日期,可以这么插入: select '2018-12-01','2018-12-02','2018-12-03','2018-12-04' from dual 但是我想要数据是一列的,不会操作,有没有大神指点下。

如果用临时表,就要插入 4 条数据,要生成一年的日期就是 365 条。开销太大。 想问下还有什么好的办法吗?

1489 次点击
所在节点    程序员
6 条回复
Immortal
2018-12-12 14:43:40 +08:00
mysql 有时间函数 自己 google 下
一般你这样的需求都是代码去处理的 不会在 sql 里写一堆语句去搞这个
TommyLemon
2018-12-12 15:10:38 +08:00
一堆语言一个 for 循环就搞定的事情非得放 SQL 里做?
如果说配置运行环境麻烦,写一个 html 里面 script 标签嵌入 js 代码用 log 输出日期,
然后浏览器打开去控制台复制结果就行了
Raymon111111
2018-12-12 15:13:31 +08:00
数据库机器资源比服务机器资源要贵.
xio
2018-12-12 15:18:34 +08:00
postgres 有的 date generate_series
RoyL
2018-12-12 15:20:55 +08:00
写个 procedure,循环一下不就行了....
l00t
2018-12-12 15:31:58 +08:00
看你是 from dual, 那么多半用的是 Oracle 了。在 Oracle 中可以这么做:

今天是 12 号,所以

select sysdate - 9 + level from dual
connect by level <=4

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/516883

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX