插入最大日期(独立于数据库)

时间:2016-12-23 12:53:05

标签: java date

在我的本地设置中,我使用简单的H2数据库。 "托管"解决方案将有另一个(类似但不相同)的数据库。

我需要将最大可能日期插入DateTime列。我试着用

import UIKit

@available(iOS 10.0, *)
class WebsiteViewController: UIViewController, UIWebViewDelegate {

@IBOutlet var backButton: UIBarButtonItem!
@IBOutlet var webview: UIWebView!
@IBOutlet var navigationBar: UINavigationBar!

let user = UserDefaults.standard

override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {

    if webview.canGoBack {
        webview.goBack()

        return true
    }

    return false
}

override func viewDidLoad() {
    super.viewDidLoad()

    navigationBar.topItem?.title = ""

    let url = URL(string: "http://" + user.string(forKey: "site")!)

    webview.loadRequest(URLRequest(url: url!))

    //webview.allowsBackForwardNavigationGestures = true

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    print("test log a click")
    print(navigationType)
    return true
}

}

但是这会导致-169104626-12-11 20:08:15.99999999在列中。

是否有关于如何插入最大可能日期的可靠选项?

1 个答案:

答案 0 :(得分:2)

  

最大日期(独立于数据库)

没有这样的事情。尝试设置最大日期绝对取决于数据库。

SQL标准(遗憾的是)几乎没有涉及日期时间处理的主题。日期时间的数据类型和行为在各种数据库中广泛地广泛。各种数据库之间的最小值和最大值可能完全不同。即使在单个数据库中,各种日期时间数据类型的最小/最大范围也可能大不相同。例如,某些数据库具有旧的专有日期时间类型以及更新的更常见或标准类型,其行为完全不同。

Java本身具有非常不同的日期时间类型集:

  • 麻烦的遗留类型(java.util& java.sql)
  • 现代明智设计的java.time类型。

这些的最小值/最大值不同。

  

是否有关于如何插入最大可能日期的可靠选项?

没有

如果你试图使用最大值作为某种标志,例如“未确定的未来日期”以避免NULL,而是选择一些任意日期,以便将来足够超过任何合法值,但不能到目前为止超出您可能要使用的任何数据库的限制。在Java代码和数据库中为此值定义常量,并对文档进行彻底的记录。

我建议坚持四位数的年份,以避免各种混乱和问题,如打破报告和通过超出字段的显示宽度的GUI。像9999这样的东西。或者也许是2666,因为infamy of 666引起了人类读者的注意。

搜索Stack Overflow以获取Java,min和max等单词,以获取更多讨论。与thisthis以及thisthis以及this一样。这个问题基本上与其他问题重复。