db2获取给定日期之间的业务日期

db2获取给定日期之间的业务日期,db2,Db2,我有一个名为Publicholidays的表,其中日期存储为Varchar。 我的查询应该从用户选择的日期(不包括周末、周日和公共假日)之间的表xxxx中获取所有值。我是DB2新手,所以有人能给我一些建议吗 注意:在数据库中,日期存储为字符串 错误1-将日期存储为字符串。希望您至少已经存储了YYYY-MM-DD,而不是MM-DD-YYYY 错误2-您需要日历或日期转换表,而不是Publicholidays表。它应该有一个每天的记录,以及一些旗帜栏,如商务日、周末、公共假日。或者,您可以有一个单日

我有一个名为Publicholidays的表,其中日期存储为Varchar。 我的查询应该从用户选择的日期(不包括周末、周日和公共假日)之间的表xxxx中获取所有值。我是DB2新手,所以有人能给我一些建议吗
注意:在数据库中,日期存储为字符串

错误1-将日期存储为字符串。希望您至少已经存储了YYYY-MM-DD,而不是MM-DD-YYYY

错误2-您需要日历或日期转换表,而不是Publicholidays表。它应该有一个每天的记录,以及一些旗帜栏,如商务日、周末、公共假日。或者,您可以有一个单日类型的列,其中包含工作日、周末和假日的值。您还需要一个STRING_DATE列,以便更容易地在字符串日期和真实日期之间进行转换

谷歌SQL日历表,你会发现很多例子和讨论


最后,强烈考虑将DB固定在日期列中存储日期。 不要将日期存储为字符串。日期数据类型存在是有原因的。那么,到目前为止您尝试了什么?在许多数据库中,这个问题涉及SQL Server,但答案应该是可转换的。你的约会格式是什么样的?你们的桌子包括周末吗?正如其他人所指出的,您真的不应该将日期存储为字符串,拥有一个日历表对于此查询和其他查询将是一个巨大的好处。谢谢。我没有设计此表,我需要在现有系统中执行此实现。日期以yyyy/mm/dd格式存储为字符串。我的publicholidays表没有周末。我已尝试了以下从SSLR204中选择*,其中CRDTR2在“2015/03/01”和“2015/03/20”之间,CRDTR2在从SSLR204中选择CRDTR2,其中dayofweekDATETO_DATECRDTR2,“YYYY/MM/DD”不在1,7内,CRDTR2不在“2015/03/01”和“2015/03/20”之间,CRDTR2不在“2015/03/01”和“2015/03/31”之间的公共假日的选定日期内。实际上,我不会在数据库中存储字符串版本,至少不会用于公共消费,因为格式是依赖于区域性和语言的信息,所以数据库在查询时很少被告知。格式化/解析是表示层的问题,因此不属于数据库。但是哦,是的,你想要一张日历桌吗。。。为吸盘编制索引,您就拥有了最通用和最有用的聚合表之一。