以下SELECT语句有效,并以正确的FORMAT格式返回日期。
SELECT
' - '+c.[customercli]
,c.[customerlookup]
,c.[customername]
,c.[linedescription]
,c.[Sum of buy price]
,c.[Sum of sell price]
,c.[qty]
,c.[Billingmonth]
,FORMAT([FromDate],'dd/MM/yyyy')
,FORMAT([ToDate],'dd/MM/yyyy')
FROM [MasterBill].[dbo].[DaisyCallsCurrentBill] c
但是当我运行以下INSERT / SELECT语句时,我收到以下错误。
“从字符串转换日期和/或时间时转换失败。”
INSERT INTO [MasterBill].[dbo].[CurrentBillMaster]
([identifier]
,[customer id]
,[customer name]
,[description]
,[buy price]
,[sell price]
,[qty]
,[Billingmonth]
,[FromDate]
,[ToDate])
SELECT
' - '+c.[customercli]
,c.[customerlookup]
,c.[customername]
,c.[linedescription]
,c.[Sum of buy price]
,c.[Sum of sell price]
,c.[qty]
,c.[Billingmonth]
,FORMAT([FromDate],'dd/MM/yyyy')
,FORMAT([ToDate],'dd/MM/yyyy')
FROM [MasterBill].[dbo].[DaisyCallsCurrentBill] c
两个表上的FromDate和ToDate都配置了“date”类型
非常感谢任何帮助。
更新:日期在[dbo]上采用以下格式。[DaisyCallsCurrentBill]表格2014-09-01 - 我只是想将此更改为01/09/2014
答案 0 :(得分:2)
这里看起来你正在插入字符串类型的日期。删除格式功能,它应该工作。为什么? 格式化只是表示日期的一种方式。数据库以自己的方式存储日期,您无法更改它。
答案 1 :(得分:0)
由于您选择date
字段并尝试将其插入另一个date
字段,格式化无意义,不应使用:
INSERT INTO [MasterBill].[dbo].[CurrentBillMaster]
([identifier]
,[customer id]
,[customer name]
,[description]
,[buy price]
,[sell price]
,[qty]
,[Billingmonth]
,[FromDate]
,[ToDate])
SELECT
' - '+c.[customercli]
,c.[customerlookup]
,c.[customername]
,c.[linedescription]
,c.[Sum of buy price]
,c.[Sum of sell price]
,c.[qty]
,c.[Billingmonth]
,c.[FromDate], -- Note: no formatting
,c.[ToDate] -- here too
FROM [MasterBill].[dbo].[DaisyCallsCurrentBill] c