我需要从GivingDate
中提取月份和年份作为整数。 GivingDate
是在SQLite数据库中存储为TDateTime
的C ++ double
,用于正确排序。但是,strftime
要求将日期作为string
参数。
这是SQL语句(不起作用):
SELECT
GivingDate,
Amount,
strftime('%y', datetime(GivingDate, 'unixepoch')) as GivingYear,
strftime('%m', datetime(GivingDate, 'unixepoch')) as GivingMonth
FROM
FSBC_GivingInfo;
如何修改SQL语句以从SQLite数据库中的GivingMonth
中提取GivingYear
和GivingDate
的月份和年份?
答案 0 :(得分:1)
如果您将时间戳作为TDateTime存储在数据库中,则必须先将其转换。例如:
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import boto3
msg = MIMEMultipart()
new_body = "asdf"
text_part = MIMEText(new_body, _subtype="html")
msg.attach(text_part)
filename='abc.pdf'
msg["To"] = "amal@gmail.com"
msg["From"] = "amal@gmail.com"
s3_object = boto3.client('s3', 'us-west-2')
s3_object = s3_object.get_object(Bucket=‘bucket-name’, Key=filename)
body = s3_object['Body'].read()
part = MIMEApplication(body, filename)
part.add_header("Content-Disposition", 'attachment', filename=filename)
msg.attach(part)
ses_aws_client = boto3.client('ses', 'us-west-2')
ses_aws_client.send_raw_email(RawMessage={"Data" : msg.as_bytes()})
但是,最好将时间戳存储为https://sqlite.org/lang_datefunc.html
中列出的格式之一(我建议朱利安日期或' YYYY-MM-DD HH:MM:SS'格式 - 两者都将正确排序)
答案 1 :(得分:-1)
我不知道如何创建你的sql表,但sql中的数据是以日期时间格式。你可以稍后编辑它: 首先让你的日期时间到c ++。然后在代码中编辑。
DateTime myDateTime = "your sql datetime";
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");