SQL Server和C#中的Datetime数据类型接受的最大日期似乎是31/12/9999 23:59:59。我试图将数据库(01/01/9999 00:00:00)从数据库分配给日期时间选择器。它说错了
DateTimePicker不支持日期为31/12/9998 00:00:00之后的日期 参数名称:MaxDate
现在我的问题是当两种数据类型兼容(datetime)时,为什么这些是Datetimepicker中的限制。这似乎是设计上的。可以让我知道为什么这个限制以及这个功能在设计中会有什么帮助?
谢谢
答案 0 :(得分:1)
在正常操作中,日期时间选择器必须能够在所选日期之后显示日期。这意味着如果您选择了最大日期(9999年12月31日),那么理论上它必须显示1月1日10,000 - 它不能。
因此,选择器本身会将初始值限制为之前的任意值,因此可以显示后续日期。
我不认为这是一个问题。在现实世界的应用程序中,用户是否希望在未来设置7000年以上的日期?
如果您的应用程序有未设置日期,那么您可能需要考虑将它们存储为数据库中的null
(即使列可以为空),以便在UI上将其显示为空白。这可能实际上使用户更容易发现尚未设置的日期。
答案 1 :(得分:1)
就像DateTimePicker检查
一样简单<?xml version="1.0"?>
<ui xmlns="http://java.sun.com/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<define name="title">Welcome to Registiration Page!</define>
</ui>
定义为999年12月31日
这是来自referenceource的相关部分
DateTimePicker.MaximumDateTime
MaxDate检查DateTimePicker.MaximumDateTime