在datetime列中没有时间查找数据库中的行

Jas*_*ton 6 sql coldfusion

在测试期间,我没有注意到在某些订单上输入数据库的日期/时间不正确.而不是输入日期和时间我只输入了日期.我正在使用正确的时间戳,createodbcdatetime(now())但我用cfsqltype="cf_sql_date"它将其输入数据库.

我很幸运能够正确记录订单日期/时间,这意味着我可以使用订单日期/时间字段中的时间.

我的问题是我可以过滤表中所有行,只输入日期.我的数据如下;

表名:tbl_orders

uid_orders    dte_order_stamp
2000          02/07/2012 03:02:52
2001          03/07/2012 01:24:21
2002          03/07/2012 08:34:00
Run Code Online (Sandbox Code Playgroud)

表名:tbl_payments

uid_payment  dte_pay_paydate      uid_pay_orderid
1234         02/07/2012 03:02:52  2000
1235         03/07/2012           2001
1236         03/07/2012           2002
Run Code Online (Sandbox Code Playgroud)

我需要能够选择所有付款而没有从tbl_payments输入任何时间,然后我可以循环结果从我的订单表中抓取时间将其添加到我的付款表中的日期并使用新的日期/时间更新字段.

我几乎可以处理重新插入日期/时间.它只是选择我不确定的时间行?

任何帮助,将不胜感激.

以下是订单和付款的select语句以及是否需要加入.(只是fyi)

SQL Server 2008,Cold Fusion 9

  SELECT 
  dbo.tbl_orders.uid_orders,
  dbo.tbl_orders.dte_order_stamp,
  dbo.tbl_payment.dte_pay_paydate,
  dbo.tbl_payment.uid_pay_orderid
  FROM
  dbo.tbl_orders
  INNER JOIN dbo.tbl_payment ON (dbo.tbl_orders.uid_orders = dbo.tbl_payment.uid_pay_orderid)


  SELECT 
  dbo.tbl_orders.uid_orders,
  dbo.tbl_orders.dte_order_stamp
  FROM dbo.tbl_orders

SELECT 
  uid_paymentid,
  uid_pay_orderid,
  dte_pay_paydate,
FROM 
  dbo.tbl_payment
Run Code Online (Sandbox Code Playgroud)

Nat*_*utz 8

选择小时,分钟,秒和毫秒值为零的记录.

select *
from table
where datePart(hour, datecolumn) = 0
and datePart(minute, datecolumn) = 0
and datePart(second, datecolumn) = 0
and datePart(millisecond, datecolumn) = 0
Run Code Online (Sandbox Code Playgroud)


Rei*_*ica 6

您可以通过转换时间并检查0 来获取这些值:

SELECT * FROM table WHERE CAST(datetimecolumn AS TIME) = '00:00'
Run Code Online (Sandbox Code Playgroud)

但这可能不是特别有效,具体取决于SQL Server的索引的智能程度.