为什么我的日期值保存到数据库时缺少年份格式???

时间:2013-11-27 09:17:02

标签: c# sql wpf visual-studio-2010 xaml

我的问题是,为什么我的日期值显示在文本框上是完整的一年但保存到数据库更改为另一种格式?为什么会发生这种情况,我该怎么做才能解决它?

当我在文本框中显示格式为11-11-2013但在插入数据库期间更改为另一种格式,即11-NOV-13。为什么我的年份格式丢失了? 我可以这样做,保存到数据库将更改为2013年。

我会附上我的代码以方便参考。 XAML文件:

 <!--DatePickerTextBoxFormat-->
        <Style TargetType="{x:Type DatePickerTextBox}">
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <TextBox x:Name="PART_TextBox" Text="{Binding Path=SelectedDate, StringFormat='dd-MM-yyyy', RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

XAML文件:

<Label Canvas.Left="6" Canvas.Top="112" Content="Date of Birth " FontSize="20" Height="28" Name="AdddobLbl" />
<DatePicker Canvas.Left="125" Canvas.Top="114" Height="25" Name="AdddobDatePicker" Width="179" FontSize="12" IsTodayHighlighted="False" CalendarOpened="datePicker1_CalendarOpened" SelectedDateFormat="Short" />

1 个答案:

答案 0 :(得分:0)

DateTime数据类型实际上是一个数字。格式化仅适用于人类。这意味着最有可能正确保存日期。

例如,在SQL Server中,datetime数据类型存储为8字节值,范围从1753年1月1日到9999年12月31日,准确度为.001秒。

这样做的主要原因是数字便于计算机执行计算和比较。

我们人类的演示文稿因手头的用例而异。你想在你的应用程序中使用11-11-2013,但我想要2013-11-11,因为这是我习惯的。实际日期是相同的,它只是格式不同。