我有CSV文件
import numpy as np
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
def show(title, img, color=True):
if color:
plt.imshow(img[:,:,::-1]), plt.title(title), plt.show()
else:
plt.imshow(img, cmap='gray'), plt.title(title), plt.show()
img = cv2.imread('color_strokes.jpg')
show('original', img)
mask=cv2.inRange(img,(0,0,0),(150,150,150))
show('mask', mask, False)
res=255-cv2.cvtColor(mask,cv2.COLOR_GRAY2BGR)
show('result', res, False)
我只是使用SSIS将此文件从Csv文件加载到数据库表
OLEDB目标的平面文件源
其中date列绝对是DT_STR,SQL表日期列是varchar(50)
但是当我加载时,它的行为有所不同,有时会像
一样填充**date column**
06/04/1999
06/04/2000
.
.
.06/04/2017
以及其他一些时间
**date column**
06/04/1999
06/04/2000
我只想尝试加载平面文件中的相同内容,但为什么要提供" - "有时候 任何人都可以建议我为什么每次都表现不同。 它在SSIS中没有任何转换(如派生列)
答案 0 :(得分:0)
您必须使用yyyy-MM-dd
ScriptComponent Transformation
的字符串
Flat File connection manager
和OLEDB Connection Manager
(来源和目的地)DataFlow Task
DataFlow Task
添加Flat File Source
,Script Component
,OLEDB Destination
Source --> Script --> Destination
inDateColumn
)并添加字符串OutDateColumn
<的输出列(例如:DT_STR
) / LI>
在脚本中编写以下代码:(使用Vb.net)
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
If Not Row.inDateColumn_IsNull AndAlso _
Not String.IsNullOrEmpty(Row.inDateColumn.Trim) Then
' You can add more formats inside the following method
Row.OutDateColumn = DateTime.ParseExact(Row.inDateColumn.Trim,New String(){"yyyy-MM-dd","dd/MM/yyyy"},New System.Globalization.CultureInfo("En-GB"), System.Globalization.DateTimeStyles.None).ToString("yyyy-MM-dd")
Else
Row.OutDateColumn_IsNull = True
End If
End Sub
将OutDateColumn
映射到目标列