sql2008日期字段默认值设置为当前日期

 在进行机房收费系统时,数据库中有个StudentOnline表(学生上机)。

在学生上机成功后,需要向StudentOnline表写入数据。其中上机日期的写入有两种方式:一种是在界面获得当前日期,然后将其作为参数插入数据表中;另一种解决方案是在表中设置日期字段默认值为当前日期,这样我们就不需要向数据表传入日期这个参数,因为数据表会自动填充。

下面我们用一个小Demo给大家演示如何设置日期字段默认值为当前日期。

首先我们创建一个表名为Demo的数据表,并设置StartDate字段默认值为当前日期,代码如下:

?

1
2
3
4
5

Create Table Demo
(
    ID char(10),
    StartDate char(20) not null default convert(varchar(10),getdate(),120)
)

在这里强调一点,StartDate必须为Char类型,如果设置为smalldatetime或datetime,得到的结果将为日期+时间。因为smalldatetime精确到秒,datetime精确到毫秒,不够的位会用”0“填充。

下一步我们向Demo表插入一条记录,代码如下:

?

1

insert into Demo(ID) values('1')

最后我们查看下Demo表,代码如下:

?

1

select * from Demo

执行效果如下:

通过截图我们可以发现,已经达到我们的预期效果。
希望我的讲解能对大家有所帮助。

时间: 2025-01-20 11:20:01

sql2008日期字段默认值设置为当前日期的相关文章

sql字段默认值设置成存储过程

问题描述 sql字段默认值设置成存储过程 存储过程 [dbo].[autoidu] N'客户编号'执行后能得到一个字符串,比如是'123456789',但每次值是不一样的. 现在有个表 客户资料,我想加个字段 客户编号,我希望设置默认值为上面的存储过程执行后的值.应该怎么设置? alter table 客户资料 add 客户编号 nvarchar(15) default [dbo].[autoidu] N'客户编号' 是不是不能这样?有没有什么办法解决? 解决方案 alter table 客户资

MySQL修改字段默认值

环境 MySQL 5.1 + 命令行工具 问题 MySQL修改字段默认值 解决 alter table topic alter column cateId set default '2'; 语法总结 alter table表名alter column字段名drop default; (若本身存在默认值,则先删除) alter table表名 alter column 字段名 set default默认值;(若本身不存在则可以直接设定) 查看本栏目更多精彩内容:http://www.biancen

combo box-easyui combobx 默认值设置

问题描述 easyui combobx 默认值设置 <input id="id" class="easyui-combobox" style="width: 150px;" data-options="editable:false,valueField:'code',textField:'text',panelHeight:'auto',url:'xxx.json',mode:'local'" /> 我用combo

java-Jquery的datepicker控件默认值设置

问题描述 Jquery的datepicker控件默认值设置 最好默认值能设置为当前月份的最后一天,比如当前是2015-09-09 我要它加载后显示的时候是2015-09-30 解决方案 直接设置控件的值就行,如果是本月最后一天,就算一下就好了 <p>Date: <input type=""text"" id=""datepicker""></p> <script> $(funct

水晶报表分组 默认值设置?

问题描述 vs2008,水晶报表分组统计后,有的组没有记录,那么如何设置其默认值为0呢? 解决方案 解决方案二:右键字段--突出显示专家解决方案三:针对有NULL的字段,做一个公式,把报表里的原始字段删掉,把这个公式拖到原来的位置,设置大小位置边线,跟原始字段的设置一样公式这样写:C#code//如果是字符型的字段if{字段}=''orisnull(字段)then''else{字段}C#code如果是数值型字段if(notisnumeric({字段}))orisnull(字段)then0else

数据源SelectParameters默认值设置

问题描述 <asp:AccessDataSourceID="AccessDataSource1"runat="server"DataFile="~/database/#g8c0q1o0.asp"SelectCommand="SELECT*FROM[zh]WHERE(([ID]=?)or([ID]=?))"><SelectParameters><asp:ControlParameterControl

hibernate的默认值设置问题

问题描述 如果有个@manytoone的关联关系,采用中间表关联来管理这种关系,但是在注解的时候不配置jointable,而是采用默认配置,但是实际在数据库创建的关联表和hibernate默认指定的表名字并不是一致的.这种hibernate是怎么是别的,我以为不能识别?求指导 解决方案 解决方案二:默认为为两个相关联的实体表的名字并用下划线分开连在一起.Defaultstotheconcatenatednamesofthetwoassociatedprimaryentitytables,sepa

mysql记录根据日期字段倒序输出_Mysql

我们知道倒序输出是很简单的 select * from table order by id desc 直接这样就可以 那么现在的问题在于日期字段怎么来倒序输出 这里我们用到cast()来将指定的字段转换为我们需要的类型 如下是实际项目中的sql语句 select * from water where phoneNumber=@phoneNumber order by cast(date as datetime) desc 我们说学而不思则罔,我们来思考下深层次的内容. 经过查阅资料得知类型的转换

数据库中字段设置的默认值和插入的结果不一致

问题描述 表Persons中有一字段isStudent,bit类型,notnull,默认值设置为1.但是在程序中执行添加Persons操作时,不给isStudent赋值,默认值都是0.求解- 解决方案 解决方案二:insert的sql语句贴出来解决方案三:先看看你的添加代码是不是有问题,怎么写的解决方案四:我做插入不是直接用sql插的,而是运用EntityFramework代码如下:using(TestEntitiescontext=newTestEntities()){varperson=co