如何用SQl语句只读取日期的年份和月份

空气: sub(to_char(TollDate, 'YYYYMM'), 1 , 6 ) -> 获取不带分隔符的年份和月份。
SQL服务器: left(convert(varchar, TollDate, 1 2 0), 6 ) -> 获取不带分隔符的年份和月份。

PostgreSQL: to_char(TollDate, 'YYYYMM') -> 获取不带分隔符的年份和月份。
MySQL: date_format(TollDate, '%Y%m') -> 获取不带分隔符的年份和月份。

Sqlite: strftime('%Y%m', TollDate) -> 获取不带分隔符的年份和月份。

注意:请确保日期格式字符串与数据库中的存储格式一致。

sql2000 获取当前日期只要年月日,不要时分秒

哎呀,我之前在SQL Server 2 000中做这个日期格式转换的时候,确实遇到了很多困难。
记得有一次,我接了一个项目,需要在报告中显示日期,而且格式必须统一。
当时我还在使用SQL Server 2 000。
那个东西现在已经很旧了,但是我当时对它还算熟悉。

前几天,我写了一条SQL语句,想直接使用GETDATE函数获取当前日期,然后将其格式化为年、月、日。
这就是我写的:从 DUAL 中选择 CONVERT(getdate(), 1 2 0)。
结果输出结果多了一个分隔符,格式变成了“2 008 01 01 -”,真是把我搞乱了。

后来查了资料,发现这个CONVERT函数的样式代码可以决定输出日期格式。
我尝试了样式代码1 2 ,输出格式为“2 008 .01 .01 ”。
这次好多了,但分母还是一分。

我再次尝试了样式代码1 02 ,输出格式为“2 008 /01 /01 ”。
这次格式正确,但分隔符又变成了斜杠。

最后我决定使用样式代码1 2 0,然后手动截取前1 0个字符,这样输出格式为“2 008 01 01 ”,就满足了客户的要求。

所以,在数据库行业,确实需要注意细节。
小分隔符可能会影响整个报表的布局。
我个人在这方面曾陷入过许多陷阱。
现在回想起来,我真的很害怕。
如果我以后遇到类似的情况当我遇到这个问题时,我肯定需要在编写SQL语句之前弄清楚样式代码的作用。

SQL 日期函数如何获取月份的第一天?

是的,这就是问题所在。
SQL 获取该月的第一天,并且该方法查找数据库。

对于 SQL Server,只需使用 DATEFROMPARTS 即可轻松完成。

Oracle,TRUNC函数;切掉日期。

PostgreSQL,DATE_TRUNC;被月亮截断了。

一般方法;在年份和月份中添加 -01 以更改日期。

记住,使用默认函数会更快;不要总是拼写出来。