在测试期间,我没有注意到在某些订单上输入数据库的日期/时间不正确.而不是输入日期和时间我只输入了日期.我正在使用正确的时间戳,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)
选择小时,分钟,秒和毫秒值为零的记录.
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)
SELECT * FROM table WHERE CAST(datetimecolumn AS TIME) = '00:00'
Run Code Online (Sandbox Code Playgroud)
但这可能不是特别有效,具体取决于SQL Server的索引的智能程度.
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |