我在数据库领域有点新鲜,并且在我的工作中遇到了数据库中应该是DATETIME,或者TIMESTAMP,或者与日期相关的任何内容的每一列都是VARCHAR(250)例如:201610251557。
我的问题是,有一种方法,将列更改为日期,而不会丢失其中的值?
我已经尝试更改列结构,但它将每个值更改为0000-00-00 00-00。
答案 0 :(得分:3)
你可以看看str_to_date;它的运作方式如下:
func notNil(objectOrNil: AnyObject?) -> Bool {
guard let object: AnyObject = objectOrNil,
object as! _OptionalNilComparisonType != AnyObject?.none else {
return false
}
if object is NSNull {
return false
}
//if object.classForCoder == NSNull.classForCoder() {
// return false
//}
// TODO: how to check for? Optional(_SwiftValue)
print("class for coder: \(object.classForCoder)")
return true
}
使用iso格式的输出,也许您可以像这样更新列:
SELECT STR_TO_DATE('201610251557', '%Y%m%d%H%i');
答案 1 :(得分:1)
最安全的情况是:
答案 2 :(得分:1)
您可以使用str_to_date()函数创建另一个表,然后删除之前重命名的新表格或将其恢复为原始值