文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>处理日期和时间数据--单独使用日期和时间

处理日期和时间数据--单独使用日期和时间

时间:2010-12-22  来源:崔永华

  例如,Sales.Orders表的orderdate列是DATETIME类型的,但由于实际只使用日期部分,所以所有值的时间都存储为午夜。当需要筛选特定日期的订单时,可以不必使用范围过滤条件,只要使用如下等号运算符即可:

1 SELECT orderid,custid,empid,orderdate
2 FROM Sales.Orders
3 WHERE orderdate = '20070212';

  当把字符串文字转换成DATETIME类型时如果没有指定时间,SQL Server将默认用午夜作为其时间值。因为orderdate列中所有值的时间部分都保存成午夜,因此以上查询能够正确地得到请求日期发出的所有订单。

  如果保存的时间不是午夜值,则可以使用范围过滤查询条件,如下所示:

1 SELECT orderid,custid,empid,orderdate
2 FROM Sales.Orders
3 WHERE orderdate >= '20070212' AND orderdate < '20070213';

  如果想在SQL Server 2008之前的版本中只使用时间,则可以用基础日期1900年1月1日来存储所有时间值。当SQL Server把只包含时间值的字符串文字转换成DATETIME或SMALLDATETIME类型时,它会默认你想用的日期是基础日期。例如,运行以下代码:

1 SELECT CAST('12:30:15.123' AS DATETIME);

  该查询会生成以下输出:

  假设有个表的列叫tm,它的数据类型是DATETIME,所有值都用基础日期进行存储。要返回时间值是12:30:15.123的所有行,应该使用过滤条件WHERE tm='12:30:15.123'。因为没有指定日期部分,当SQL Server隐式地将字符串文字转换成DATETIME数据类型时,它会默认你想使用的日期是基础日期。

  如果想只使用日期或时间,但输入值既包括日期部分,也包括时间部分,这时就需要对输入值进行一定的处理,把不相关的部分暂时变成“0”。也就是说,如果只想使用日期,就把时间部分设置成午夜;如果只想使用时间,就把日期部分设置成基础日期。

相关阅读 更多 +
排行榜 更多 +
鸡生化精英安卓版

鸡生化精英安卓版

飞行射击 下载
光头火柴人安卓版

光头火柴人安卓版

飞行射击 下载
轨道射击安卓版

轨道射击安卓版

飞行射击 下载