使用SQL2017的Date数据格式问题
刚开始看视频学习SQL,建立第一个数据库和表时遇到了一个问题。我建立了一个学生表和班级表,在完成学生表中的出生日期列的创建时,遇到了视频教程中没有的问题(本人使用sql management 2017)。
一开始采用datetime类型作为日期,设置默认值时能正常接收,如1990-01-01
这样的输入。后来发现datetime的格式为YYYY-MM-DD HH::MM::SS
,觉得使用这个格式但不需要时间会造成浪费,于是修改为date格式改完后,直接报错,sql不认这种输入。
研究了半天,最后发现sql需要如('1990-01-01')
这种格式的输入。
在设置CHECK约束的时候,使用date格式时采用year()
函数会自动转化为datepart()
函数,如(datepart(year,[BirthDate])>(1900))
,保存时因不明原因会报错但是可以正常使用。