无论在学习生活中,我们都会经历一些所谓“想当然”的错误,本来应该这样的,结果呢,事实上不一样。

今天介绍一个挺二的错误,也属于想当然的错误:在表news中,NewsAddTime字段使用了SQL内置函数getdate(),在插入表数据时,犯了这个想当然的错误。

且听我细细道来:

1、先上一下表结构:

CREATE TABLE [News]
(NewsID int PRIMARY KEY IDENTITY (1,1),UserID int REFERENCES[Users](UserID),NewsClassID int REFERENCES [NewsClass](NewsClassID)NOT NULL,NewsTitle nvarchar(128) NOT NULL,NewsDescription nvarchar(128) NULL,NewsReadCount int NOT NULL DEFAULT '0',NewsAddTime datetime DEFAULT getdate() NOT NULL,--使用了getdate()函数。NewsContents nvarchar(max) NULL,NewsPictureUri nvarchar(max) NULL,NewsKeyWords nvarchar(128) NULL ,
)

2、在使用Insert into 语句插入数据时:

错误代码

INSERT INTO [jwyweb].[dbo].[News]([UserID],[NewsClassID],[NewsTitle],[NewsDescription],[NewsReadCount],[NewsAddTime],[NewsContents],[NewsPictureUri],[NewsKeyWords])VALUES('1','7','喜讯-我司喜获“闵行区工人发明家”等荣誉','2012年4月29日,我公司XXX同志,荣获“工人发明家”二等奖。','1','','2012年4月29日,我公司XXX同志,荣获“XXX工人发明家”二等奖。','','喜讯')

在插入NewsAddTime时,当时就想该字段既然使用了默认函数返回当前时间,那么给他个空值吧【想当然了】,结果过我查询了News表返回的结果:【有点无厘头】

咦?咦?咦?咦?

怎么搞来了个1900-01-01 00:00:00.000顿时不得其解。各种查资料:

结果:SQL若字段定义的类型为datetime,插入为''(空),那么会默认值为1900-01-01 00:00:00.000

解决:

select getdate() as currenttime
select * from news
select cast('' as datetime),cast(nullif('','') as datetime)
,isnull(cast(nullif('','') as datetime),getdate())

我不死心呐,结果有了这么一条语句:

去掉NewsAddTime列

INSERT INTO [jwyweb].[dbo].[News]([UserID],[NewsClassID],[NewsTitle],[NewsDescription],[NewsReadCount]],[NewsContents],[NewsPictureUri],[NewsKeyWords])VALUES('1','7','喜讯-我司喜获“闵行区工人发明家”等荣誉','2012年4月29日,我公司XXX同志,荣获“工人发明家”二等奖。','1','2012年4月29日,我公司XXX同志,荣获“XXX工人发明家”二等奖。','','喜讯')

查询结果:【正常了,o yeah】

这样不能算完了,继续学习

找到了一个前辈写的此情况问题

请移步—————————————详解

【待续】

 本文版权归本人和博客园共同所用,转载请注明出处。

 

转载于:https://www.cnblogs.com/yankliu-vip/archive/2012/06/15/2550248.html

那些我们想当然的错误[SQL]相关推荐

  1. mysql报08S01的错误- SQL Error: 0, SQLState: 08S01 偶发

    mysql报08S01的错误- SQL Error: 0, SQLState: 08S01 偶发 后台res回来的值为: {"error_code":"UNKNOWN&q ...

  2. 8 大错误SQL用法,你肯定踩过坑!

    来源:https://juejin.im/post/5dd15451e51d453b3d3d4329 1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单 ...

  3. sqlite奇怪错误SQL logic error

    sqlite出现奇怪错误,SQL logic error,没有详细错误 发现原因是sqlite2_open兼容性没有做好,使用sqlite3_open_v2之后没有出现这种错误 sqlite3_ope ...

  4. 验证计算机名出现一般性网络错误,SQL SERVER 2000 安装提示一般性网络错误

    SQL SERVER 2000 安装提示"一般性网络错误" 今天安装SQL SERVER 2000 个人版,安装最后弹出错误对话框: "安装程序配置服务器失败.参考服务器 ...

  5. Oracle 批量添加 错误 SQL语句未结束

    Oracle 批量添加 其他语句回报 SQL语句未结束 的错误 <insert id="insertedTemp" parameterType="java.util ...

  6. golang mysql 错误 sql: unknown driver “mysql“ (forgotten import?) 解决方法

    golang中使用gorm连接mysql的时候会报错:sql: unknown driver "mysql" (forgotten import?) 需要在连接数据库的文件中引入  ...

  7. 错误 SQL TOP子句中的行数必须是整数

    sql = "select * from TABLE where id='"+id+"'"; sql = "select top "+Pag ...

  8. 精读《手写 SQL 编译器 - 错误提示》

    1 引言 编译器除了生成语法树之外,还要在输入出现错误时给出恰当的提示. 比如当用户输入 select (name,这是个未完成的 SQL 语句,我们的目标是提示出这个语句未完成,并给出后续的建议: ...

  9. 小结SQL Server连接失败错误及解决[引用]

    在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了.一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器.查 ...

  10. 如何在SQL Server中实现错误处理

    错误处理概述 (Error handling overview) Error handling in SQL Server gives us control over the Transact-SQL ...

最新文章

  1. Java提高篇——Java实现多重继承
  2. nginx和fpm的进程数配置和502,504错误
  3. C_Free引用链接库
  4. mysql修改存储位置及开启远程
  5. EMNLP 2021 | PairSupCon:基于实例对比学习的句子表示方法
  6. ASP.Net Core MVC 发生二次请求
  7. 集群部署中解决定时任务重复执行的问题-redis分布式锁应用
  8. 作业6--四则运算APP之Sprint计划
  9. java中console_Java:如何从System.Console()获取输入
  10. Oracle中级篇-物化视图
  11. 新偶像时代:被直播重构的粉丝经济和社交平台
  12. 【时间序列】时间序列数据的缺失填补方法总结
  13. 安卓阅读器开发_全球首个彩屏阅读器 掌阅这一脚油门“彩”的够深
  14. c-free语言编程软件,c-free软件下载_c-free官方下载_3DM软件
  15. OpenCV开发笔记(四十九):红胖子8分钟带你深入了解轮廓识别(图文并茂+浅显易懂+程序源码)
  16. 无人机监控交通流量实时传输路况智慧交通系统说明
  17. 电影之记忆4:蝴蝶效应1
  18. ecshop图片自动本地化插件,ECSHOP下载商品图片,ECSHOP商品详情远程图片,ecshop商品远程图片保存,ecshop图片自动本地化插件,商品图片本地化
  19. HP EliteDesk 800 G4 DM 35W (Japan) Mini Tower黑苹果efi引导文件
  20. paper_note

热门文章

  1. 2019-06-12-pintos 实验1
  2. 使用svn向指定文件夹下载数据
  3. 怎么关闭服务器管理器自动启动,用 systemctl 管理服务:查看状态、启动/停止服务、开启/取消开机自启动...
  4. css学习记录第一天(选择器)
  5. 苹果App Store强行收取30%手续费,终于被告垄断啦!
  6. Data Management Platform 数据管理平台全接触
  7. MVC与MVP的区别
  8. 华为HCNA综合实验
  9. STM32操作增量式编码器(二)----使用编码器接口实现定位
  10. requests爬取英雄联盟皮肤图片